在VIsual C++中使用C++代码,只会忽略错误,但代码的某些部分会被忽略

Ord*_*rdo 0 c++ visual-c++

我是编程的绝对初学者,我只是在开始时做一些练习练习.

首先,我使用Visual C++ 2010编译C代码.我只是创建一个新项目并选择一个空的控制台应用程序.之后,我创建一个名为test.c的资源文件,并将文件属性中的元素类型更改为C/C++编译器并编译为C++代码,以便我可以使用#include <iostream>std::cin.get()命令.现在的代码:

#include <stdio.h>
#include <iostream>

int main() 
{
   int number1, number2;
   int sum;

   puts("Enter number 1 please:");
      scanf_s("%d",&number1);
   puts("Enter number 2 please:");
      scanf_s("%d",&number2);

   std::cin.get();
   std::cin.get();  //(1)

   sum = number1 + number2;
      printf("The average is %f\n", sum/2);

return 0; 
}
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,只是忽略了"std :: cin.get()"命令.输入两个数字后,程序就会停止,控制台窗口关闭.

知道问题出在哪里?

我还有另一个问题.

由于我解决了控制台打开的问题(1),现在我的printf()只给出零作为输出.我希望有一个浮点数作为输出,但无论我输入的是number1和number2,我总是得到"0.000000".

由于我还在处理我的小程序以在接受之前验证输入,我还有另一个问题.

我想使用以下代码来检查输入.

#include <stdio.h>
#include <iostream>
#include <ctype.h>

int main() 
{
   int number1, number2;
   int sum;

   puts("Enter number 1 please:");
      scanf_s("%d",&number1);

   if (isdigit(number1)) 
   {
   puts("Enter number 2 please:");
      scanf_s("%d",&number2);
   }
   else 
   {
   puts("Your input is not correct. Enter a number please.");
   }

   std::cin.get();
   std::cin.get();

   /*



   sum = number1 + number2;
      printf("The average is %f\n", sum/2);  */

return 0; 
}
Run Code Online (Sandbox Code Playgroud)

好吧它不起作用.我输入一个数字,我的回答是"你的输入不是......".我使用了搜索并找到了以下内容:检查用户是否输入了C中的字母或数字.不幸的是,这些建议对我没有帮助.

Ben*_*ley 11

它没有被忽视.当您键入第二个数字,然后按Enter键,它会在输入流中输入您的数字和换行符.scanf删除数字,但只保留换行符.当你调用cin.get()时,由于流中有一个字符,它不会等待你的输入.