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

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的显示,按完之后得到第三行的数据

    评论

报告相同问题?

悬赏问题

  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn