C 编程语言的 fgets 函数用于从指定的流中读取一个字符数组。如何通过示例使用 fgets 从文件中读取字符数组或字符串数据并返回输出?使用 fgetc 函数可以从流中逐个字符地读取。
C 编程 fgets 语法
在这种编程语言中,fgets 的语法如下所示。从下面的 fgets 代码片段中,
- str: 请指定您想从文件中读取的字符数组。
- n: fgets 函数可以读取的最大长度。
- stream: 请指定一个指向 FILE 对象的指针,或者简单地说,是一个包含文件地址和操作模式的文件指针。
char *fgets(char *str, int n, FILE *stream)
我们将使用以下指定的文件来演示此 fgets 函数。从下面的截图中,您可以看到 sample.txt 文件位于我们的 Examples 文件夹中。它包含的文本是“Learn C Programming Language at Tutorial Gateway”。

C fgets 示例
fgets 方法从用户指定的文件中读取字符数组并返回输出。这个 C 程序将帮助您理解这一点。
提示:在使用此 fgets 函数之前,您必须包含头文件 #include<stdio.h>。
#include <stdio.h>
int main()
{
FILE *fileAddress;
fileAddress = fopen("sample.txt", "r");
char data[50];
if (fileAddress != NULL) {
// Check whether it is the last character or not
while (!feof(fileAddress)) {
// fgets(string_data, number_of_characters(length), file_pointer)
fgets(data, 50, fileAddress);
printf("Character we are reading from the File = %s \n", data);
}
fclose(fileAddress);
}
else {
printf("\n Unable to Create or Open the Sample.txt File");
}
return 0;
}

在这个 C fgets 函数示例中,我们首先创建了文件指针,然后以读取模式指定了 txt 文件,因为我们想要读取 sample.txt 中存在的字符。请参考 fgetc 函数和读取输入的文章。
在这个 C 程序中,我们没有提及文件名的完整路径,因为我的 .c 应用程序和文本文件位于同一位置。如果您的情况不同,请提供完整路径。
下面的 If 语句将检查我们是否成功打开了 sample.txt。
if (fileAddress != NULL) {
接下来,我们使用 While 循环来遍历 sample.txt 中存在的每个字符。在 while 循环中,我们使用条件来检查编译器是否到达了文件末尾。
while (!feof(fileAddress)) {
接下来,我们使用 fgets 函数来读取 sample.txt 中存在的字符串或字符数组。这里的 50 是最大长度。
fgets(data, 50, fileAddress);
然后,我们关闭了 C 编程指针。
fclose(fileAddress);