読者です 読者をやめる 読者になる 読者になる

fgets

fgetsはファイルなどの指定されたストリームから1行分の文字列を読み込んで、指定の文字配列に格納するC標準ライブラリ関数・・・。

Man page of FGETC

の2番目がfgets・・・。
標準入力から1行読み込むgetsをベースにしているが、getsはセキュリティ上の問題もあり非推奨となっている・・・。
第1引数に格納先の文字配列、第2引数に文字配列のサイズ、第3引数がファイルポインタ・・・。

ファイル"test.txt"から1行分をfgetsで読み込み、printfで出力する・・・。

格納先文字配列textとファイルポインタfpを宣言・・・。

"test.txt"を読み込み専用で開く・・・。

fgetsで"test.txt"から1行(最大255文字)読み込む・・・。

文字配列textが256文字分なので、1行が255文字未満なら、改行を含めて文字配列textに格納される・・・。
255文字以上なら、改行は含まれずに255文字分格納される・・・。

読み込んだ1行をprintfで出力・・・。

fcloseで閉じる・・・。

"test.txt"が、

hoge foo bar
ABCDE
END

こんなものだった場合、
実行すると、

$ ./fgets
hoge foo bar

$

scanfと違い、fgetsはスペースも含めて読み込まれる・・・。
また、"hoge foo bar"が255文字未満なので、格納される文字列に改行文字'\n'がついてしまう・・・。
そのため、上では1行余計に改行されている・・・。

Sample/fgets.c at master · bg1bgst333/Sample · GitHub