C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス fgets

🔧 入出力 ・ stdio.h ・ C89

fgets の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

char *fgets(char *s, int n, FILE *stream);

どんな関数か

ストリームから最大n-1文字を1行読み取り、末尾に\0を付けてバッファへ格納する安全な入力関数。改行文字も含めて読み取る点に注意する。getsの安全な代替として広く推奨される。 ファイルからの行単位読み込みの基本であり、CSVやログファイルの解析処理の第一歩として使われる。

使用例

#include <stdio.h>
int main(void) {
    char line[64];
    if (fgets(line, sizeof line, stdin)) {
        printf("got: %s", line);
    }
    return 0;
}

つまずきやすい注意点

⚠️ 読み取った文字列の末尾に改行\nが残ることがあるため、必要ならstrcspn等で除去する。

アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ

fgets と一緒に使う関数

fputs文字列をストリームへ書き出す。putsと違って改行は自動で付加されないため、必要なら自分で\nを書く。ファイルへのテキス… gets_s標準入力から1行を安全に読み取る。旧来のgetsはバッファサイズを指定できず脆弱性の温床だったためC11で規格から削除さ… scanf標準入力から書式に従って値を読み取り、対応する変数へ格納する。各変換指定子には&を付けたポインタを渡す必要があり、渡し忘…

この関数が出てくる解説

安全な文字列操作——バッファサイズの意識バッファオーバーフローの危険を理解し、snprintfやfgetsで安全に書ける 文字列処理の定石パターン文字列を1文字ずつ走査する型を身につけ、数える・削る・逆順にするが書ける

同じ分類(入出力)の関数

fclose feof ferror fflush fgetc fopen fprintf fputc fputs fread fscanf fseek ftell fwrite getchar gets_s

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る