循环中的scanf应该对EOF信号作出反应,但它不会
我有一段代码,它读取数字循环中的scanf应该对EOF信号作出反应,但它不会,c,C,我有一段代码,它读取数字float,在接收到EOF单个CtrlD后应该停止,但它没有反应 需要帮忙吗 (我知道它看起来很奇怪,但是-1控件的存在是有原因的。) EOF是scanf()的返回值,而不是写入传递的内存地址的值 do { f++; } while(scanf("%f", &paid[f]) != EOF && paid[f - 1] != 0); 测试scanf的返回值,该值应为1(转换的项目数)EOF不是一个会在数组中出现的值float paid[]
float
,在接收到EOF
单个CtrlD后应该停止,但它没有反应
需要帮忙吗
(我知道它看起来很奇怪,但是-1
控件的存在是有原因的。)
EOF
是scanf()
的返回值,而不是写入传递的内存地址的值
do {
f++;
} while(scanf("%f", &paid[f]) != EOF && paid[f - 1] != 0);
测试
scanf
的返回值,该值应为1
(转换的项目数)EOF
不是一个会在数组中出现的值float paid[]
@WeatherVane感谢您的快速反应。它的反应就像第四次按下…请张贴显示您尝试过的内容,以及实际输入、输出和预期输出,显示问题所在。否则,我们可以整天问问题,例如“您是否#是否包含”需要检查调用scanf()
返回的值,而不是参数值。
do {
f++;
} while(scanf("%f", &paid[f]) != EOF && paid[f - 1] != 0);