输入一串未知个数的数据直到EOF(-1)停止和键盘输入文件结尾符EOF
来源:互联网 发布:日语等级考试 知乎 编辑:程序博客网 时间:2024/05/27 21:05
1. 输入到EOF(-1)停止
如果一般自己调试程序,在输入数据未知数据数量的时候,希望随时可以停止数据输入。一般情况下,两种写法,一种遇换行符’\n’停止,但是由于’\n’符在输入阶段表示开始获取值的开始信号,如果不适用getchar()获取,一般scanf默认是不会认为换行是输入的数据,所以写法稍微复杂。该写法不做今天重点内容,如果想要学习该机制程序写法,详细请看下面的博文:
http://blog.csdn.net/fx677588/article/details/52712417 C/C++ 输入一行每隔一个空格一个数据
另一种写法则是模拟读取文件,遇文件结尾符停止读取。这个是我们今天想要研究的问题,下面我们先看对应程序的写法:
int data;while(scanf("%d",&data)!=EOF) //EOF即文件结尾符,-1{ printf("%d",data);}
或者
while(scanf("%d",&data)!=-1)//EOF即-1
scanf()正常输入,返回成功读取的数据个数。当读取到文件结尾返回的是EOF,即-1。那么问题又来了,如何键盘输入文件结束符呢?
2. 键盘输入文件结尾符
键盘输入是可以用来模拟文件结尾符,查相关资料你会知道,windows下可通过按“Ctrl +Z”、linux下可通过“Ctrl + D”来达到输入文件结束符的效果(提示:输入’Z’和’D’不用区分大小写)。
但是输入时候会发现,为什么得不到理想的效果呢?实际上多数介绍忽略了操作上的细节。以windows上为例,实际操作过程是“换行Enter”,然后“Ctrl+Z”,然后再“换行Enter”才能终止上面的,linux上操作过程一样,“Ctrl+Z”换位“Ctrl+D”。
直接“Ctrl+Z”不换行是不能成功读取到文件结尾符的。
int data;while(scanf("%d",&data)!=EOF) //EOF即文件结尾符,-1{ printf("%d",data);}
对应终端上显示和操作如下显示,^Z即对应“Ctrl+Z”操作地方:
个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢!
转载请注明出处:CSDN 无鞋童鞋。
- 输入一串未知个数的数据直到EOF(-1)停止和键盘输入文件结尾符EOF
- 文件结尾eof问题
- 判断文件结尾的方法(feof函数和EOF)
- 关于使用while(!filePCloud.eof())判断文件结尾进行数据输入装换时注意事项
- 文件结尾判断feof , EOF
- 键盘输入EOF, 为何循环还不停止
- 键盘输入EOF,在istream_iterator中, 不输入EOF死循环
- ifstream 流 判断文件是否结尾的函数eof()
- ifstream 流 判断文件是否结尾的函数eof()
- 判断输入的EOF
- C语言文件结尾标志EOF用法
- eof输入
- 输入EOF
- EOF 和“EOF”
- 文件结束符EOF
- 文件结束符EOF
- 文件结束符EOF
- 文件结束符EOF
- 牛客网刷题之二叉搜索树的第k个结点
- Qt中自定义MessageBox提示框
- C#调用URL接口方法
- 优先队列 <priority_queue>
- 解决div设置浮动,高度消失
- 输入一串未知个数的数据直到EOF(-1)停止和键盘输入文件结尾符EOF
- Android开启手电筒功能(完美适配Android4x,5x,6x)
- 百度地图
- 青岛区域赛总结
- 架构 - 第四课:git标签管理
- ROS机器人Diego 1#制作(六)base controller---对ros_arduino_bridge的修改,实现两个马达独立PID调速
- Oracle Blob类型 java中实现互转(Hibernation实践)
- bootStrap适配不同屏幕
- NOIP RP++