5.5

5.5 循环和文本输入

使用原始的cin输入

选择某个特殊的字符作为停止标记, 称为哨兵字符

使用cin.get(char)

引用将在第8章介绍

文件结尾条件

EOF
模拟文件尾条件
+
命令行输入
gofish.exe < fishtale
重定向, 从文件fishtale中获取输入
检测到EOF后, 程序将eofbit和failbit都设置为1
cin.fail()
cin.eof()
读取到文件尾后, 将不能再读取内容
char ch;
cin.get(ch);
while (cin.fail() == false)
{
cout << ch;
cin.get(ch);
}
cout << endl;
当cin出现在需要bool值的地方, 就会转换为bool值, 这意味着可以改成
while (cin.get(ch))
如果需要和EOF比较, 应改为
int ch;
cin.get(ch);
while (ch != EOF)
{
cout.put(ch);
cin.get(ch);
}
cout << endl;
重新唤醒cin
istream.clear() // 重置输入流
如果到达文件尾
cin.get(char) // char将不会储存EOF
ch = cin.get() // char将会被放入EOF