这里是一段C++代码,它会从给定的文本文件中尽可能读取更多单词,直到遇到EOF。
string text;
fstream inputStream;
inputStream.open("filename.txt");
while (inputStream >> text)
cout << text << endl;
inputStream.close();
我的问题是:
- 将 while 循环的条件(即 inputStream >> text)转换为布尔值(true 或 false)时,实际上执行了什么过程?
我的回答是:
据我了解,inputStream >> text 应该返回另一个(文件)输入流。当 EOF 到达时,该流似乎为 NULL。NULL 可以被定义为 0,这相当于 false。
我的回答有意义吗?即使我的回答有意义,将 InputStream 转换为布尔值也不会让我感到很舒服。 :)
cin >> x >> y;
这样的事情。如果operator>>
返回一个布尔值,那将是不可能的,但是nullptr
(或在这种情况下的隐式转换为布尔值)将被评估为false
,所以双赢。 - Ed S.