fgets是C语言中的一个标准库函数,用于从指定文件中读取一行字符串。它的声明如下:
char *fgets(char *str, int n, FILE *stream);
其中,str是一个字符数组,用来存储读取的字符串;n表示读取的最大字符数(包括换行符和终止符);stream表示要读取的文件流。
fgets函数会从stream中读取字符,直到遇到下列三种情况之一:
- 读取了n-1个字符;
- 读取到了换行符'\n';
- 读取到了文件结束符EOF。
如果读取成功,则返回一个指向str的指针,否则返回NULL。另外,fgets会将读取到的字符串缓存到str中,并自动在末尾添加一个终止符'\0'。
以下是一个简单的例子,演示了如何使用fgets函数从文件中读取一行字符串并输出:
#include <stdio.h>
#define MAXLINE 1024
int main() {
char str[MAXLINE];
FILE *fp = fopen("file.txt", "r");
if(fp == NULL) {
printf("Failed to open file\n");
return -1;
}
if(fgets(str, MAXLINE, fp) != NULL) {
printf("%s", str);
}
fclose(fp);
return 0;
}
在这个例子中,程序打开文件file.txt,使用fgets函数从中读取一行字符串(不超过MAXLINE-1个字符),然后输出读取到的字符串。最后,程序关闭文件并结束。