我是C的新手,所以我在使用scanf()时遇到了一些麻烦。
#include #include int main() { int height; int weight; printf("Enter height in inches:n"); scanf("%d", &height); printf("Enter weight in pounds:n"); scanf("%d", &weight); printf("You are %d inches tall and weigh %d pounds.", height, weight); return 0; }
我很确定这是正确的语法,但是当我运行它时,它显示一个空屏幕,在我输入2个数字后,它显示:
64
120
以英寸为单位输入高度
以磅为单位输入重量:
你身高64英寸,体重120磅。
根据一些教程,在我输入第二个数字之前,它应该显示“以英寸为单位输入高度:”,然后输入第一个数字和“以磅为单位输入重量:”。 请帮我!
我正在使用Eclipse编写程序,MinGW作为编译器,如果相关的话。
这是eclipse中的一个错误,大多数人都使用eclipse和MinGW进行了报道。
要解决此问题,您可以在每次调用printf
后使用fflush(stdout)
或在main
的开头使用以下内容:
setvbuf(stdout, NULL, _IONBF, 0); setvbuf(stderr, NULL, _IONBF, 0);
这将导致stdout
和stderr
在写入时立即刷新。
尝试使用scanf_s
而不是scanf,我只是运行它,它工作。
我建议你使用sscanf insted of scanf并将fgets添加到顶部会更加逻辑。
这将是:
int height; char buffer[32]; /*Add this to collect you data*/ printf("Enter height in inches:n"); fgets(buffer,sizeof(buffer),stdin); /*Add this line to get value from keyboard*/ sscanf(buffer,"%d", &height); /*Change scanf to sscanf*/
和另一个一样
我建议在Windows上使用Putty,或者在Mac OSX上使用命令行。 使用“Wal Werror”编译器
是的,您需要等待它在输入数字之前显示输出。
例如,运行程序时出现此行
Enter height in inches:
然后进入
64
然后出现这个
Enter weight in pounds:
然后输入
120
那么输出应该如预期的那样
以上就是c/c++开发分享使用scanf()输入问题相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/519328.html