文件尾条件
using namespace std;
char ch;
int count = 0;
cout << "Enter characters; enter # to quit:\n";
cin.get(ch); // use the cin.get(ch) function
while (ch != '#')
using namespace std;
char ch;
int count = 0; // use basic input
cout << "Enter characters; enter # to quit:\n";
cin >> ch; // get a character
while (ch != '#')
以上两种情况是通过特殊符号#来表示输入的结束,但这两种情况不让人满意,因为特殊字符本身可能就是合法输入内容,所以我们引用了一种功能更强大的技术---检测技术尾(EOF)。
允许用文件替换键盘输入。例如,假设在Windows下有一个名为gofish.exe的程序和一个名为fishtale的文本文件,则可以在命令提示符模式下输入下面的命令gofish<fishtale,这样,程序将从fishtale文件中获取输入。
**Windows操作系统允许键盘输入来模拟EOF,输入Ctrl + Z 即可模拟文件尾条件,即程序立即结束
在C++中使用这样的代码来检测: while (cin.fail() == false) // test for EOF
因为cin.fail()如果检测到EOF,就可以返回值true,反之返回false。
而上述代码有以下另外几种方式:
1:
int ch;
ch = cin.get();
while(ch!= EOF)
2:字符输入时,甚至可以这样用
cin.get(ch);
while(cin)
因为cin.get(char)的返回值是一个cin对象,而且关键是C++提供了一种可以将istream对象(比如cin)转换为bool值得函数,这种函数,当cin出现在需要bool值的地方时,被调用。
甚至可以将上述两行函数进行再一次精简
while(cin.get(ch))
道理同上
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律