迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C语言 >

C 语言中的文件结尾(EOF)

作者:迹忆客 最近更新:2023/03/27 浏览次数:

在 C 语言中表达 EOF 的话题将是本文的重点。


C 语言中的 End of File(EOF)

当不再有任何数据可以从数据源读取时,称为 End of File 的情况发生在计算机的操作系统中。数据源通常被称为文件

当显示 End of the File (EOF) 消息时,输入已完成。

输入内容后,我们可以同时按下 CtrlZ 键来终止文本。这表明文件已经结束,没有什么要读的了。

在 C 语言中到达文件末尾时,getc() 函数返回 EOF。如果不成功,getc() 也将返回 end-of-file (EOF)

因此,仅将 getc() 提供的值与 EOF 进行比较以确定文件是否已到达其末尾是不够的。C 提供了 feof() 函数来解决这个问题。

仅当到达文件末尾时,此函数才会返回大于零的值;否则,它将返回 0


C 语言中对文件的操作

大多数程序都是为了保存从程序中检索到的信息而开发的。其中一种方法是将获得的信息保存在文件中。

以下是可以对文件执行的各种操作的列表。

创建文件

使用 fopen 程序并指定诸如 aa+ww++ 之类的特征,可以创建一个新文件。

打开文件

每当打开文件时,都会使用 fopen 功能和适当的访问模式。以下是一些最常用的文件访问模式。

  1. a 将搜索文件。如果文件被成功打开,fopen() 函数将其加载到内存中并创建一个指针,该指针链接到正在从中读取的字符。

    如果该文件尚不存在,则会生成一个新文件。如果无法打开文件,则返回 Null

  2. 字母 w 搜索文件。如果文件已经存在,文件的内容将被重写。

    如果该文件尚不存在,则会生成一个新文件。如果文件无法打开,将返回 Null

为了执行需要在文件上完成的活动,使用称为 文件指针 的专用指针,其声明如下所示:

FILE *fp;

因此,可以使用以下命令打开文件:

fp = fopen("Shanii.txt", "w");

这里,Shanii.txt 是我们要打开的文件,第二个参数是文件模式。

读取文件

fscanffgets 函数用于对文件执行读取操作。这两种方法都执行与 scanfgets 相同的操作,但它们考虑了一个称为文件指针的额外参数。

你可以选择逐个字符或逐行读取文件,具体取决于你希望如何组织信息。以下是读取文件所需的代码示例。

FILE * fp;
fp = fopen("shanii.txt", "r");
fscanf(fp, "%s %s %s %d", str1, str2, str3, &year);

写一个文件

用于读取文件的函数 fprintffputs 也可以用于写入文件,其过程与读取文件非常相似。写入文件时使用的命令如下所示:

FILE *fp ;
fp = fopen("shanii.txt", "w");
fprintf(fp, "%s %s %s %d", "I", "am", "Zeeshan", 2000);

关闭文件

在成功完成所有操作后,你必须始终关闭文件。你必须使用 fclose 函数才能成功关闭文件。

关闭文件的代码如下所示:

FILE *fp ;
fp= fopen("fileName.txt", "w");
fprintf(fp, "%s %s %s %d", "I", "am", "Zeeshan", 2000);
fclose(fp);

C 语言中的 EOF 示例

例如,查看以下 C 代码以在屏幕上显示名为 shanii.txt 的文本文件的内容。

getc() 的值首先与 EOF 进行比较。

int charac = getc(filepointer);

while (charac != EOF) {
putchar(charac);
charac = getc(filepointer); }

然后,使用 feof() 执行第二次检查。此检查确保程序仅在到达文件末尾时输出 Program has reached End-of-file

if (feof(filepointer))
{ printf("\n Program has reached End-of-file"); }

否则程序将显示 There was a problem

源代码:

#include <stdio.h>

int main() {
FILE *filepointer = fopen("shanii.txt", "r");
int charac = getc(filepointer);

while (charac != EOF) {
putchar(charac);
charac = getc(filepointer); }

if (feof(filepointer))
{ printf("\n Program has reached End-of-file"); }
else
{ printf("\n There was a problem"); }
fclose(filepointer);
getchar();
return 0;
}

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C 语言中使用 typedef enum

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文介绍了如何在 C 语言中使用 typedef enum。使用 enum 在 C 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。

C 语言中的静态变量

发布时间:2023/05/07 浏览次数:151 分类:C语言

本文介绍了如何在 C 语言中使用静态变量。在 C 语言中使用 static 变量在函数调用之间保存变量值

C 语言中生成随机数

发布时间:2023/05/07 浏览次数:64 分类:C语言

本文演示了如何在 C 语言中生成随机数。使用 rand 和 srand 函数在 C 语言中生成随机数

C 语言中的 i++ 与++i

发布时间:2023/05/07 浏览次数:83 分类:C语言

本文演示了如何在 C 语言中使用前缀增量与后缀增量运算符。C 语言中++i 和 i++ 记号的主要区别

C 语言中获取当前工作目录

发布时间:2023/05/07 浏览次数:182 分类:C语言

本文演示了如何在 C 语言中获取当前工作目录。使用 getcwd 函数获取当前工作目录的方法

C 语言中的位掩码

发布时间:2023/05/07 浏览次数:126 分类:C语言

本文介绍了如何在 C 语言中使用位掩码。使用 struct 关键字在 C 语言中定义位掩码数据

C 语言中的排序函数

发布时间:2023/05/07 浏览次数:181 分类:C语言

本文演示了如何在 C 语言中使用标准库排序函数。使用 qsort 函数对 C 语言中的整数数组进行排序

C 语言中的 extern 关键字

发布时间:2023/05/07 浏览次数:114 分类:C语言

本文介绍了如何在 C 语言中使用 extern 关键字。C 语言中使用 extern 关键字来声明一个在其他文件中定义的变量

C 语言中的 #ifndef

发布时间:2023/05/07 浏览次数:186 分类:C语言

本文介绍了如何在 C 语言中使用 ifndef。在 C 语言中使用 ifndef 保护头文件不被多次包含 C 语言中的头文件用于定义同名源文件中实现的函数的接口。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便