C 教程

浏览5954
更新时间2025-08-05

读取文件

在上一章中,我们在 fopen() 函数中使用 wa 模式写入文件。

读取文件,您可以使用 r 模式:

实例

FILE *fptr;

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

这将使 filename.txt 文件以读取模式打开。

在 C 语言中读取文件需要一些工作。坚持下去!我们将逐步指导你。

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

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

实例

FILE *fptr;

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

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

为了读取 filename.txt 的内容,我们可以使用 fgets() 函数。

fgets() 函数采用三个参数:

实例

fgets(myString, 100, fptr);
  • 第一个参数指定在哪里存储文件内容,它将存储在我们刚刚创建的 myString 数组中。
  • 第二个参数指定要读取的数据的最大大小,它应该与 myString 的大小(100)相匹配。
  • 第三个参数需要一个用于读取文件的文件指针(在我们的示例中为 fptr)。

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

实例

FILE *fptr;

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

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

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

// 打印文件内容
printf("%s", myString);

// 关闭文件
fclose(fptr);

输出:

Hello World!

运行实例

注意:fgets 函数只读取文件的第一行。如果你还记得的话,filename.txt 文件中有两行文本。

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

实例

FILE *fptr;

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

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

// 阅读内容并打印
while(fgets(myString, 100, fptr)) {
  printf("%s", myString);
}

// 关闭文件
fclose(fptr);

输出:

Hello World!
Hi everybody!

运行实例

好的实践

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

提示:作为一项好的实践,我们可以使用 if 语句来测试是否为 NULL,并在文件不存在时打印一些文本(例如):

实例

FILE *fptr;

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

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

// 关闭文件
fclose(fptr);

如果文件不存在,将打印以下文本:

无法打开文件。

运行实例

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

实例

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

FILE *fptr;

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

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

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

  // 读取内容并打印它
  while(fgets(myString, 100, fptr)) {
    printf("%s", myString);
  }

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

// 关闭文件
fclose(fptr);

输出:

Hello World!
Hi everybody!

运行实例

相关视频

更多

免费

php8,我来也
初级php8,我来也

34万次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

39.6万次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

31万次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

64.9万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

41.2万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

76.6万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

64.1万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

24.3万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

36.2万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

133.1万人学习

热门下载

更多
phpStudy 2018最新版
phpStudy 2018最新版

集成PHP7,16种组合,超全大合集

下载

VC9 32位
VC9 32位

VC9 32位 phpstudy集成安装环境运行库

下载

VC11 32位
VC11 32位

VC11 32位 phpstudy集成安装环境运行库​

下载

php程序员工具箱完整版
php程序员工具箱完整版

程序员工具箱 v1.0 php集成环境

下载

VC14 32位
VC14 32位

VC14 32位 phpstudy安装环境运行库

下载

SublimeText3汉化版
SublimeText3汉化版

中文版,非常好用

下载

Notepad++ Windows版
Notepad++ Windows版

Notepad++ 8.9.7 Windows版官方安装包,适合 Windows 用户进行代码编辑、文本处理、语法高亮和插件扩展配置。

下载