getline

実は、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