手册
目录
收藏404
分享
阅读711
更新时间2025-08-05
在上一章中,我们在 fopen() 函数中使用 w 和 a 模式写入文件。
要读取文件,您可以使用 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!
运行实例
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习