枸杞加上 2016-11-05 09:04 采纳率: 0%
浏览 1754

C 语言 EOF和文件读写及终止输入

我在C Primer Plus中看到这样一个例子用于终止输入的方法:

#include <stdio.h>

int main()
{
    int ch;
    while((ch=getchar())!=EOF)
        putchar(ch);
    return 0;
}

在这个地方使用的是EOF来终止,一般EOF是用于文件读写结尾的返回,end of file,
因为EOF的值是-1,而在标准字符集中没有-1对应的值,所以可以用其来现实文件的结尾。在大多数系统中有具有一种从键盘模拟文件结尾的方法。所以这个地方使用了
EOF作为输入结尾的标志
问题来了:我们在键盘中不能输入-1,那么程序是如何读取到的这个EOF,从而终止输入的呢?怎么上面这个程序能够有效的实现最终的这个输入终止呢?
我在windows平台上运行这个程序,由于没办法输入-1,所以没办法终止程序,在linux上键入Ctrl+Z(Ctrl+Z在一些系统中可以作为文件结尾的标志)
然后linux现实的是如下的样子图片说明
求大神指点

  • 写回答

4条回答 默认 最新

  • 枸杞加上 2016-11-05 09:09
    关注

    截图第二行就是运行程序之后随便输入的字符^Z就是按了Ctrl+Z的显示,按完之后得到第三行的数据

    评论

报告相同问题?