C 读取文件
读取文件
在上一章中,我们使用 w
和a
模式内部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);
- 第一个参数指定文件内容的存储位置,它将位于
myString
我们刚刚创建的数组。 - 第二个参数指定要读取的数据的最大大小,该大小应与
myString
(100
). - 第三个参数需要一个文件指针,用于读取文件(
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!