実は、basic_stringの非メンバ関数に、もう一つのgetlineがある。
getline - cpprefjp C++日本語リファレンス
stringに対応しており、非メンバなので、"std::getline"として呼び出すだけである。
stringなので、バッファ上限は不要。
$ ls getline getline.cpp test.txt $ cat test.txt ABC DEF GHIXYZ JKL MNO $ vi getline.cpp $ g++ getline.cpp -o getline $ ./getline str = [ABC] str = [DEF] str = [GHIXYZ] str = [JKL] str = [MNO] EOF fail $
このように、行ごとの文字数は気にせず、読み込める。
Sample/cpp/getline/getline/src/getline at master · bg1bgst333/Sample · GitHub