枸杞加上 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 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建