c++ - 在 VIsual C++ 中使用 C++ 代码,没有错误,但部分代码被忽略

标签 c++ visual-c++

我是编程的绝对初学者,我只是在做一些入门练习。

首先,我使用 Visual C++ 2010 编译 C 代码。我只是创建一个新项目并选择一个空的控制台应用程序。之后,我创建了一个名为 test.c 的资源文件,并将文件属性中的 elementype 更改为 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; 
}

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

知道问题出在哪里吗?

我还有一个问题。

由于我的保持控制台打开的问题已解决 (1),现在我的 printf() 只给我零作为输出。我想要一个 float 作为输出,但无论我输入 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; 
}

好吧,这行不通。我输入一个数字,我的回答是“您的输入不是……”。我使用了搜索并找到了以下内容:Check if User Inputs a Letter or Number in C .不幸的是,这些建议对我没有帮助。

最佳答案

它不会被忽略。当您键入第二个数字,然后按回车键时,它会将您的数字加上一个换行符放入输入流中。 scanf 删除数字,但单独保留换行符。当你调用 cin.get() 时,由于流中有一个字符,它不会等待你的输入。

关于c++ - 在 VIsual C++ 中使用 C++ 代码,没有错误,但部分代码被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3994394/

相关文章:

c++ - 为什么我在写 = 而不是 == 时没有收到警告?

c++ - 我试图访问 C++ 多态类的 vtable,但由于核心转储而失败,为什么?

c++ - std::list static_cast 派生迭代器

c++ - 子类的构造函数后跟冒号后的基类构造函数是什么意思?

c++ - 如何在编译时从作用域运算符中提取类型?

c++ - 为什么这会导致堆损坏?

c++ - 在控制台应用程序中使用 ocx

c++ - 创建指向没有默认构造函数的类的智能指针数组

c# - 创建与 Windows 服务通信的非托管 DLL(在 C++ 中)?

c++ - VS2012:单元测试错误:Assert::AreEqual(object, object) 无效