fgets関数とその使い方

fgets関数は、ファイルから文字列を読み取るためにC言語で使用される関数です。そのプロトタイプは以下のようになります:

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

strは文字列を読み込むための配列で、nは最大文字数(null文字’\0’も含む)、streamはファイルへのポインタです。

fgets関数は、指定されたファイルから1つの文字列を読み取り、それをstrに保存します。行送り(行末も含む)に遭遇するまでです。読み取られた文字列には自動的に終端文字’\0’が追加され、文字列の終了を示します。

fgets関数の戻り値は、strへのポインタであり、成功した場合はstrを、失敗した場合はNULLを返します。

fgets関数は、ファイルから1行ずつ文字列を読み取るためによく使用されます。以下に示すように、ループと組み合わせて使用することができます。

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r");
    if (file == NULL) {
        printf("文件打开失败\n");
        return 1;
    }
    
    char str[100];
    while (fgets(str, sizeof(str), file) != NULL) {
        printf("%s", str);
    }
    
    fclose(file);
    
    return 0;
}

例えば、上記のコードは、example.txtという名前のファイルを開き、1行ずつ文字列を読み取り、それを端末に出力します。ファイルの終わりに達すると、fgets関数はNULLを返し、ループが終了します。

fgets関数では、改行文字も読み取られ、strに保存されることに注意する必要があります。改行文字を不要とする場合は、strtok関数を使用するか、手動で文字列から改行文字を削除する方法があります。

bannerAds