理论教育 C语言程序设计:文件的读写技巧

C语言程序设计:文件的读写技巧

时间:2023-10-20 理论教育 版权反馈
【摘要】:③在文件内部有一个位置指针,用来指向文件的当前读写字节。文件读函数fgetc范例程序。

C语言程序设计:文件的读写技巧

1.文件写字符函数fputc

fputc函数的功能是把一个字符写入指定的文件中,即将字符表达式的字符输出到文件指针所指向的文件。

fputc(字符表达式,文件指针);

fputc('a',fp);

提示:

①被写入的文件可以用写、读写、追加方式打开,用写或读写方式打开一个已存在的文件时将清除原有的文件内容,写入字符从文件首开始。

②每写入一个字符,文件内部位置指针向后移动一个字节。

③fputc函数有一个返回值,如果写入成功则返回写入的字符,否则返回一个EOF。可用此来判断写入是否成功。

2.文件读字符函数fgetc

fgetc函数的功能是从指定的文件中读一个字符,该字符的ASCII码值作为函数的返回值。若读取字符时文件已经结束或出错,fgetc函数返回文件结束标记EOF,此时EOF的值为-1。函数调用的形式如下:

字符变量=fgetc(文件指针);

ch=fgetc(fp);

其意义是从打开的文件fp中读取一个字符并送入ch中。

提示:

①在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。

②读取字符的结果也可以不向字符变量赋值。例如:fgetc(fp);该操作读出的字符是不能保存的。

③在文件内部有一个位置指针,用来指向文件的当前读写字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc函数后,该位置指针将向后移动一个字节,因此可连续多次使用fgetc函数读取多个字符。

【例8.3】文件读函数fgetc范例程序。

程序如下:

3.文件读写字符串函数fgets和fputs

fgets函数的功能是从指定的文件中读一个字符串到字符数组中。函数调用的形式如下:

fgets(字符数组名,n,文件指针);

fgets(str,n,fp);

从fp所指的文件中读出n-1个字符送入字符数组str中。n是一个正整数,表示从文件中读出的字符串不超过n-1个字符。

fputs函数的功能是向指定的文件写入一个字符串。函数调用的形式如下:

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

fputs("abcd",fp);

字符串可以是字符串常量,也可以是字符数组名,还可以是指针型指针变量。字符串末尾的“\0”不输出,若输出成功,函数值返回0,失败则为EOF。函数调用意思是把字符串"abcd"写入fp所指的文件中。

4.数据块读写函数fread和fwrite

fread、fwrite是用于整块数据的读写函数。它们可用来读写一组数据,如一个数组元素、一个结构变量的值等。函数调用的形式如下:

fread(buffer,size,count,fp);

fwrite(buffer,size,count,fp);

buffer是一个指针,在fread函数中,它表示存放输入数据的首地址,在fwrite函数中,它表示存放输出数据的首地址;size表示数据块的字节数;count表示要读写的数据块块数;fp表示文件指针。

5.格式化读写函数fscanf和fprintf

fscanf函数和fprintf函数与前面使用的scanf和printf函数的功能相似,都是格式化读写函数。两者的区别在于fscanf函数和fprintf函数的读写对象不是键盘和显示器,而是磁盘文件。这两个函数的调用格式如下:

fscanf(文件指针,格式字符串,输入表列);

fprintf(文件指针,格式字符串,输出表列);

6.文件随机读写rewind函数和fseek函数

rewind函数和fseek函数实现读写文件中某一指定的部分达到随机读写,按要求移动位置指针,这两个函数的调用格式如下:

rewind(文件指针);

fseek(文件指针,位移量,起始点);(www.daowen.com)

rewind函数把文件内部的位置指针移到文件首。fseek函数的“文件指针”指向被移动的文件;“位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64 kB时不会出错,当用常量表示位移量时,要求加后缀“L”;“起始点”表示从何处开始计算位移量。规定的起始点有文件首、当前位置和文件尾三种。

综合案例引入和本节C语言数据文件相关知识,理解和掌握数据文件的读写及数据文件的管理,提高自身的信息安全意识。总结如下:

1.只有明白鱼与熊掌不可兼得,我们才会不停地前进,不满足于现状。或许只有学会抛弃,才会懂得收获。漫漫人生路,我们需要做出的决定很多,但每个分叉路口我们只能选取一条。我们无法抓住手中的每一条绳索,得到就要付出。

2.需要增强信息的保护意识和保护措施。信息安全保护不仅是个人的事情,也是企业的事情。整个社会需要建立对信息安全意识的重视,提高对于信息安全问题的警惕。对于个人来说,不要随意授权互联网应用获取个人信息,防止个人信息泄露;对于企业来说,需要加强自身的职业道德素养,不泄露用户隐私。

1.标准库函数fgets(s,n,f)的功能是(  )。

A.从文件f中读取长度为n的字符串存入指针s所指的内存

B.从文件f中读取长度不超过n-1的字符串存入指针s所指的内存

C.从文件f中读取n个字符串存入指针s所指的内存

D.从文件f中读取长度为n-1的字符串存入指针s所指的内存

2.在C中,对文件的存取以(  )为单位

A.记录 B.字节 C.元素 D.簇

3.在C中,下面对文件的叙述正确的是(  )。

A.用“r”方式打开的文件只能向文件写数据

B.用“R”方式也可以打开文件

C.用“w”方式打开的文件只能用于向文件写数据,且该文件可以不存在

D.用“a”方式可以打开不存在的文件

4.在C中若按照数据的格式划分,文件可分为(  )。

A.程序文件和数据文件 B.磁盘文件和设备文件

C.二进制文件和文本文件 D.顺序文件和随机文件

5.在C中,打开文件的程序段中正确的是(  )。

6.下面程序段的功能是(  )。

A.从键盘输入一个字符给字符变量s1

B.从键盘输入一个字符,然后再输出到屏幕

C.从键盘输入一个字符,然后在输出到屏幕的同时赋给变量s1

D.在屏幕上输出stdout的值

7.在C中,常用如下方法打开一个文件

其中函数exit(0)的作用是(  )。

A.退出C环境

B.退出所在的复合语句

C.当文件不能正常打开时,关闭所有的文件,并终止正在调用的过程

D.当文件正常打开时,终止正在调用的过程

8.有如下程序段:

下面说法正确的是(  )。

A.将39个人的名字写入文本文件name.txt中

B.将40个人的名字写入文本文件name.txt中

C.文件name.txt中只能写入40个字符

D.文件name.txt必须存在

9.从20世纪70年代以来,能源就与人口、粮食、环境、资源被列为世界上的5大问题。随着社会的不断进步与科学技术的不断发展,人们越来越关心我们赖以生存的地球,世界上大多数国家也充分认识到了环境对我们人类发展的重要性。各国都在采取积极有效的措施改善环境,减少污染。这其中最为重要也是最为紧迫的问题就是能源问题,要从根本上解决能源问题,除了寻找新的能源,节能是关键,也是目前最直接有效的重要措施。

对于我们大学生来说,节约能源要从生活中的小事做起。请同学们编写程序,输入1年当中12个月的用水量和用电量,统计它们的平均值后,将所有数据存入文件ENERGY.DAT中,通过数据的分析,思考自己是否做到了节约用水和用电,今后还可以通过哪些方式或途径更好地节约能源。

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

我要反馈