在使用标准库提供的I/O流时,我们常常通过判断文件流状态来进行循环控制。例如
ifstream ifStr("MyFile.txt"); // 要使用绝对路径 string str; if(ifStr >> str){ cout << str << endl; } |
但是像下面这样写就是错的:
ifstream ifStr("MyFile.txt"); // 假设MyFile.txt中内容为每行两个单词 string str1, str2; if(ifStr){ ifStr >> str1; cout << str1 << endl; ifStr >> str2; cout << str2 << endl; } |
//xk> 小结
在通过检查I/O流的状态来控制循环时,不是直接判断流的状态(if(ifStr){...}),而是判断流进行下一次操作之后的状态(if(ifStr >> str1){...})。