私は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()
を実装していますか?
としてループ::もしifstreamが '演算子bool()'?* *を実装しているのであれば(http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool)、あなたはそれを調べることができます同じウェブサイト](http://en.cppreference.com/w/cpp/io/basic_ifstream)。 – Biffen
"' std :: ifstream'は '演算子bool()'を実装していますか? " [閉じる。継承されたone](http://en.cppreference.com/w/cpp/io/basic_ios/operator_bool) – user4581301
そしてpre C++ 11には 'operator void *'がありました。 –