[英]How to read input from stdin until EOF read line by line with each line containing four space separated integers in C
[英]Read integers until EOF in C
我需要读取所有整数,直到EOF。 我正在尝试此代码,问题是该程序未检测到EOF并保持运行。 我需要的是接收所有数据并自动进入下一行代码(在输入后按Ctrl-D即可运行代码)。
int x, sum = 0;
while (scanf("%d", &x) == 1) {
sum += x;
}
if (feof(stdin)) {
printf ( "SUM: %d\n", sum );
} else {
printf("ERROR\n");
}
return 0;
您要如何指定EOF?
^D
是在Unix终端中执行此操作的方法。 在Windows终端中, ^Z
执行相同的操作。 scanf
将返回-1
, feof()
将为非零。 但是任何来自stdin的输入也会失败。
您是否只想按Enter键? 如果是这样,你必须检查,经过scanf
,否则下次调用scanf
将读取换行,并忽略它。
如果键入的内容既不是空格也不是数字,则scanf
将返回0
,并将不匹配的字符保留在输入流中。 您的程序将显示ERROR
。 这是怎么回事吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.