我是编程的绝对初学者,我只是在开始时做一些练习练习.
首先,我使用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()时,由于流中有一个字符,它不会等待你的输入.
归档时间: |
|
查看次数: |
401 次 |
最近记录: |