这是一个C++代码,它从给定的文本文件中读取尽可能多的单词,直到它满足EOF.
string text;
fstream inputStream;
inputStream.open("filename.txt");
while (inputStream >> text)
cout << text << endl;
inputStream.close();
Run Code Online (Sandbox Code Playgroud)
我的问题是:
我对这个问题的回答是:
我的回答有意义吗?即使我的回答确实有意义,将InputStream转换为bool也不会让我感到舒服.:)
use*_*267 12
将while循环的条件(即inputStream >> text)转换为布尔值(即true或false)后,究竟执行了什么程序?
operator>> 返回对流的引用.
在C++ 11中,引用然后bool通过流的operator bool()函数转换为a ,返回等效的!fail().
在C++ 98中,通过使用来实现同样的目的operator void*(),并且返回的指针要么NULL指示失败,要么返回非空指针if if fail(),然后bool在while评估中隐式转换为a .