C fgets 函数

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”。

Sample Text File 1

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 Function 2

在这个 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);