我是一個處女std::getline(...)
和cppreference.com在諮詢文檔和示例,我通過示例代碼混淆像這樣:std :: getline()如何等同於bool?
#include <sstream>
#include <string>
int main(int argc, char* argv[])
{
std::string line;
std::ifstream infile("sample.txt");
while (std::getline(infile, line))
{
// Do stuff
}
return 0;
}
...特別是while語句:while (std::getline(infile, line))
。
注意到的文件說std::getline(std::basic_istream<CharT,Traits>& input, ...)
的返回值是input
,即對第一個參數的引用。
那麼如何將返回值getline
用作while循環的條件,該條件需要是bool
?
是否std::ifstream
實施了operator bool()
?
「*是否'的std :: ifstream'實現一個'operator bool()'?'爲什麼[它是的](http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool),你可以[查看它同一網站](http://en.cppreference.com/w/cpp/io/basic_ifstream)。 – Biffen
「std :: ifstream'是否實現了'operator bool()'?」 [關。繼承一個](http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool) – user4581301
而前C++ 11它有'運營商無效*'。 –