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関数を使用するか、手動で文字列から改行文字を削除する方法があります。