最适合网络开发者的网站
C 语言。W3Schools 英文版。初学者课程

尿素 西斯

C 读取文件


读取文件

在上一章中,我们使用 wa 模式内部fopen() 功能。

从文件中,您可以使用r 模式:

例子

文件*fptr;

// 以读模式打开文件
fptr = fopen("文件名.txt", "r");

这将使 filename.txt 打开即可阅读。

使用 C 语言读取文件需要一点工作量。坚持下去!我们将一步步指导您。

接下来,我们需要创建一个足够大的字符串来存储文件的内容。

例如,让我们创建一个可以存储最多 100 个字符的字符串:

例子

文件*fptr;

// 以读模式打开文件
fptr = fopen("文件名.txt", "r");

// 存储文件的内容
char myString[100];

为了阅读内容 filename.txt,我们可以使用 fgets() 功能。

fgets() 函数有三个参数:

例子

fgets(myString, 100, fptr);
  1. 第一个参数指定文件内容的存储位置,它将位于 myString 我们刚刚创建的数组。
  2. 第二个参数指定要读取的数据的最大大小,该大小应与 myString (100).
  3. 第三个参数需要一个文件指针,用于读取文件(fptr 在我们的例子中)。

现在,我们可以打印字符串,它将输出文件的内容:

例子

文件*fptr;

// 以读模式打开文件
fptr = fopen("文件名.txt", "r");

// 存储文件的内容
char myString[100];

// 读取内容并将其存储在 myString 中
fgets(myString, 100, fptr);

// 打印文件内容
printf("%s",我的字符串);

// 关闭文件
fclose(fptr);

Hello World!

运行示例 »

笔记:fgets 函数只读取文件的第一行。如果你还记得的话,filename.txt.

要读取文件的每一行,可以使用 while 环形:

例子

文件*fptr;

// 以读模式打开文件
fptr = fopen("文件名.txt", "r");

// 存储文件的内容
char myString[100];

// 读取内容并打印
while(fgets(myString, 100, fptr)) {
printf("%s",我的字符串);
}

// 关闭文件
fclose(fptr);

Hello World!
Hi everybody!

运行示例 »

良好实践

如果你尝试打开一个不存在的文件进行读取, fopen() 函数将返回NULL.

提示: 作为一种良好做法,我们可以使用if 要测试的语句NULL,并打印一些文本(当文件不存在时):

例子

文件*fptr;

// 以读模式打开文件
fptr = fopen("loremipsum.txt", "r");

// 如果文件不存在,则打印一些文本
如果 (fptr == NULL) {
printf("无法打开该文件。");
}

// 关闭文件
fclose(fptr);

如果该文件不存在,则会打印以下文本:

Not able to open the file.

运行示例 »

考虑到这一点,如果我们再次使用上面的“读取文件”示例,我们可以创建更可持续的代码:

例子

如果文件存在,则读取内容并打印。如果文件不存在,则打印一条消息:

文件*fptr;

// 以读模式打开文件
fptr = fopen("文件名.txt", "r");

// 存储文件的内容
char myString[100];

// 如果文件存在
如果 (fptr != NULL) {

// 读取内容并打印
while(fgets(myString, 100, fptr)) {
printf("%s",我的字符串);
  }

// 如果文件不存在
} 别的 {
printf("无法打开该文件。");
}

// 关闭文件
fclose(fptr);

Hello World!
Hi everybody!

运行示例 »