fgets函數是C語言中用于從文件中讀取字符串的函數。它的原型如下:
char *fgets(char *str, int n, FILE *stream);
其中,str是用于存儲讀取字符串的數組,n是最大讀取字符數(包括空字符’\0’),stream是指向文件的指針。
fgets函數會從指定的文件中讀取一個字符串,并將其存儲到str中,直到遇到換行符(包括換行符在內)。讀取的字符串會自動在末尾添加空字符’\0’,以表示字符串的結束。
fgets函數的返回值是一個指向str的指針,即讀取成功時返回str,讀取失敗時返回NULL。
fgets函數常用于從文件中逐行讀取字符串,可以配合循環使用,如下所示:
#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的文件,并逐行讀取其中的字符串,然后將其打印到終端上。直到文件末尾,fgets函數返回NULL,循環終止。
需要注意的是,fgets函數會將換行符也讀取進來,并存儲到str中。如果不需要換行符,可以使用strtok函數或手動處理字符串來移除換行符。