C 代码为';不要要求输入字符
当我执行代码时,我只能输入数据,直到我输入一个双精度值,然后程序退出而不要求另一个输入。有人能解释一下这是怎么回事吗?我一直在看在线教程,同样的代码也适用于它们 这是我执行程序时得到的结果:C 代码为';不要要求输入字符,c,stdin,fflush,C,Stdin,Fflush,当我执行代码时,我只能输入数据,直到我输入一个双精度值,然后程序退出而不要求另一个输入。有人能解释一下这是怎么回事吗?我一直在看在线教程,同样的代码也适用于它们 这是我执行程序时得到的结果: #include "stdio.h" #include "stdlib.h" int main() { int a = 10; float f; double d; char k = 'X'; scanf("%d", &a); printf("
#include "stdio.h"
#include "stdlib.h"
int main() {
int a = 10;
float f;
double d;
char k = 'X';
scanf("%d", &a);
printf("%d\n", a);
scanf("%f", &f);
printf("%f\n", f);
scanf("%lf" , &d);
printf("%lf\n", d);
fflush(stdin);
scanf("%c",&k);
printf("%c\n",k);
return 0;
}
fflush通常用于刷新输出缓冲区(输出流)。 fflush(stdin)可能导致未定义的行为。并非所有编译器都支持此操作。
你使用C还是C++?<代码> FFLUW(STDIN);
在标准C.Jodag中是未定义的行为。我正在使用CThisfflush(stdin)
在许多低质量的教程中仍然建议使用无意义。很好,你来这里是为了学习不要那样做;)您可能还想阅读我的。scanf(“%c”、&k);-->scanf(“%c”和“&k”)
如果不使用fflush(stdin)@KartikGupta在%c
之前添加空格,我可以做些什么来使代码正常工作,如中所示。“可能会导致未定义的行为。”
21
21
333.264765
333.264771
2317.23
2317.230000
Program ended with exit code: 0