如何调用EOF到标准输入
我的程序正在使用while scanf!= EOF从.in文件输入标准输入。如./"file“< file.in问题是,我必须在终端scanf从终端。有没有一种方法可以将EOF调用到stdin,以便文件停止从file.in中扫描,或者可以指定scanf从终端读取而不是文件。因为这是一项大学任务,所以我也被允许使用scanf。这是我的问题的模拟程序。由于如何调用EOF到标准输入
int main() {
int arr[100];
int num;
int count = 0;
while(scanf("%d", &arr[count]) != EOF) {
count++;
}
printf("%d\n", arr[0]);
scanf("%d", &num);
printf("%d\n", num);
}
**输出为数字的第一个列表的只是数量,和scanf完全与打印张数没有价值被忽略。
scanf()返回读取的字符数。 你需要FEOF()函数,或0
你能解释更多吗? – cpburnz 2014-09-25 16:51:55
如果FILE *为EOF,则函数feof(FILE *)返回非零值。 将您的scanf()更改为feof(),在循环体中添加您的scanf调用。 – 2014-09-25 18:50:25
可能需要将scanf()替换为fscanf() – 2014-09-25 18:56:55
https://en.wikipedia.org/wiki/End-of-file linux中的ctrl-d,windows中的ctrl-z – clcto 2014-09-25 16:04:14
你的'while'不符合你的期望。 – edmz 2014-09-25 16:05:08
对不起,我只是一个命令ctrl-d的printf?对不起,我是新手c – Sarc 2014-09-25 16:12:28