我是编程的绝对初学者,我只是在做一些入门练习。
首先,我使用 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/