首页 百科知识 文本文件读写

文本文件读写

时间:2022-10-16 百科知识 版权反馈
【摘要】:从文件指针所指定的文件中读取一个字符,并把该字符的ASCII码赋给变量ch。若写入成功,则返回字符的ASCII码;否则返回文本文件结束标志EOF。再次以只读方式打开文件,循环读取文件,把读取的字符输出到屏幕上,直至检测到文件结束标志EOF。从文件指针所指向的文本文件中,读取n-1个字符,并在结尾处加上ˊ\0ˊ组成一个字符串,存入“字符串指针”中。向文件中写入的字符串中并不包含字符串结束标志符ˊ\0ˊ。

8.2 文本文件读写

8.2.1 字符读出函数fgetc

img310

从文件指针所指定的文件中读取一个字符,并把该字符的ASCII码赋给变量ch。如果是读到文件末尾,函数返回文件结束标志EOF(EOF是不可输出的字符,定义为-1)。

例如:

img311

功能:从文本文件中循环读取字符,输出到屏幕,直至文件结束。

8.2.2 字符写入函数fputc

fputc函数格式:

fputc(字符,文件指针);

把“字符”的ASCII码写入文件指针所指向的文件。若写入成功,则返回字符的ASCII码;否则返回文本文件结束标志EOF。第一个参数“字符”可以是字符常量,也可以是字符变量名。

【例8.1】使用fgetc函数和fputc函数建立文本文件file1.txt,并输出文件内容。

代码如下:

img312

img313

运行结果如图8-1所示。

img314

图8-1

程序文件夹中已创建了“file1.txt”,文件内容即为所输入的内容。

分析:

文件指针fp,分别用于写文件和读文件操作。先以只写方式新建并打开文本文件file1.txt,并使fp指向该文件。循环读取键盘输入的字符,直至输入回车符,把输入的字符写入文件中,然后关闭文件。再次以只读方式打开文件,循环读取文件,把读取的字符输出到屏幕上,直至检测到文件结束标志EOF。

8.2.3 字符串读出函数fgets

fgets函数是从文本文件中读取一个字符串并将其保存到内存变量中。格式如下:

fgets(字符串指针,字符个数n,文件指针);

第一个参数“字符串指针”可以是一个字符数组名也可以是字符串指针,用于存放读出的字符串;第二个参数是一个整型数,用来指明读出字符的个数;第三个参数是“文件指针”。从文件指针所指向的文本文件中,读取n-1个字符,并在结尾处加上ˊ\0ˊ组成一个字符串,存入“字符串指针”中。若函数调用成功则返回存放字符串的首地址;若读到文件结尾处或调用失败则返回字符常量NULL。

当满足下列条件之一时,读取过程结束:

(1)已读取了n-1个字符;

(2)当前读取的字符是回车符;

(3)已读取到文件末尾。

8.2.4 字符串写入函数fputs

fputs函数将一个存放在内存变量中的字符串写到文本文件中,格式如下:

fputs(字符串,文件指针);

将“字符串”写到文件指针所指向的文件中,若写入成功,函数的返回值为0;否则,返回EOF。向文件中写入的字符串中并不包含字符串结束标志符ˊ\0ˊ。

【例8.2】使用fputs和fgets函数建立文本文件file2.txt,读取并输出文件内容。

代码如下:

img315

img316

运行结果如图8-2所示。

img317

图8-2

程序文件夹中已创建了“file2.txt”,文件内容即为所输入的字符串。

8.2.5 格式化读出函数fscanf

fscanf函数与scanf函数相似,只是输入的数据是来自于文本文件。格式如下:

fscanf(文件指针,格式控制列表,地址列表);

从文件指针所指向的文本文件中读取数据,按格式控制列表所描述的格式输出到指定的内存单元中。参数“格式控制列表”和“地址列表”同scanf函数参数。

8.2.6 格式化写入函数fpri ntf

fprintf函数与printf函数相似,只是将输出的内容存放在文本文件中。格式如下:

fprintf(文件指针,格式控制列表,输出列表);

【例8.3】应用fprintf函数和fscanf函数建立文本文件file3.txt,读取并输出文件内容。

代码如下:

img318

img319

运行结果如图8-3所示。

img320

图8-3

程序文件夹中已创建了“file3.txt”,文件内容即为所输入的内容。

分析:

格式化读写文件要保证读出和写入的格式完全一致,否则会导致读取文件错误。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈