C++のgetline(後で扱う)に行く前に、C言語にもgetlineはある。
行ごとに文字列を取得していくが、C++の場合と違って、区切り文字(デリミタ)指定の引数が無い。
(その場合は、getdelimを使う模様・・・。)
また、ISO非標準(POSIX標準)なので、"UNIXシステムコール"カテゴリにした。
(この辺のカテゴリ分けも考えないと・・・。)
さらに、NULLのメモリ領域ポインタポインタを渡すと、動的にバッファを確保してくれるらしいが、今回は自前で用意してみる。
feofで使ったtest.txtを持ってきて読み込む。
$ cat test.txt ABCDE FGHIJ KLMNO$ vi getline.c $ gcc getline.c -o getline $ ./getline line = [ABCDE ] line = [FGHIJ ] line = [KLMNO] $
取得した行文字列を'['と']'で括ったが、行文字列に改行は含まれている。
Sample/unixsyscall/getline/getline/src/getline at master · bg1bgst333/Sample · GitHub