例:
std::ifstream in("some_file.txt");
std::string line; // must be outside ?
while(getline(in,line)){
// how to make 'line' only available inside of 'while' ?
}
Do-while ループは、最初の反復では機能しません。
std::ifstream in("some_fule.txt");
do{
std::string line;
// line will be empty on first iteration
}while(getline(in,line));
もちろん、いつでも a を持つことができますが、if(line.empty()) getline(...)
それは実際には正しくありません。コンマ演算子を悪用することも考えました:
while(string line, getline(in,line)){
}
しかし、それは機能しません.MSVCは、line
ブール値に変換できないためだと言っています. 通常、次のシーケンス
statement-1, statement-2, statement-3
タイプでなければなりtype-of statement-3
ません (オーバーロードoperator,
は考慮されません)。なぜそれが機能しないのかわかりません。何か案は?