C语言程序设计(第3版)何钦铭 颜 晖 第12章 文件(3)

2019-06-05 10:07

A.ftell ( ) B.fseek ( ) C.rewind ( ) D.ferror( ) 二、填空题

1.函数fopen ( )的返回值是_指向文件缓冲区的首地址的文件结构类型指针_。 2.文件的三大特征是__名称__、__大小__和__类型__。

3.缓冲文件系统与非缓冲文件系统的不同点在于__系统是否为文件自动分配一块文件缓冲区(内存单元)__。

4.只能向指定文件写入一个字符的函数是_____fputc()函数______。 5.判断文件指针是否已经到了文件尾部的函数是___feof()函数___。 6.阅读程序,以下程序完成的功能是__文件infile内容复制到文件__。 #include int main (void)

{ char infile [10],outfile [10]; FILE * fpa,* fpb; gets (infile); gets (outfile);

fpa=fopen (infile,\fpb=fopen (outfile,\while (! feof (fpa) ) fputc(fgetc(fpa),fpb); fclose (fpa) ; fclose (fpb) ; return 0; }

三、程序设计题

1.统计文本文件中各类字符个数: 分别统计一个文本文件中字母、数字及其他字符的个数。试编写相应程序。 解答:

#include #include int main(void) {

FILE *fp; char ch;

int letter=0,digiter=0,other=0;

if((fp=fopen(\ printf(\ exit(0); }

while((ch=fgetc(fp))!=EOF){ if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') letter++; else if(ch>='0'&&ch<='9') digiter++;

else other++; }

printf(\ if(fclose(fp)){

printf(\ exit(0); }

return 0; }

2.将实数写入文件: 从键盘输人若干实数(以特殊数值-1结束),分别写到一个文本文件中。试编写相应程序。 解答:

#include #include int main(void) {

FILE *fp; int number;

if((fp=fopen(\ printf(\ exit(0); }

printf(\ scanf(\ while(number!=-1){

fprintf(fp,\ scanf(\ }

if(fclose(fp)){

printf(\ exit(0); }

return 0; }

3.比较两个文本文件是否相等: 比较两个文本文件的内容是否相同,并输出两个文件中第一次出现不同字符内容的行号及列值。试编写相应程序。 解答:

#include #include

int main(void) {

FILE *fp1,*fp2; int i=1,j=1; char ch1,ch2;

if((fp1=fopen(\ printf(\ exit(0); }

if((fp2=fopen(\ printf(\ exit(0); }

ch1=fgetc(fp1); ch2=fgetc(fp2);

while(ch1!=EOF&&ch2!=EOF){ if(ch1!=ch2) break;

else if(ch1!='\\n'){ j++;

ch1=fgetc(fp1); ch2=fgetc(fp2); } else{ i++; j=1;

ch1=fgetc(fp1); ch2=fgetc(fp2); } }

printf(\首次不同的字符在第%d行、第%d列。\\n\ if(fclose(fp1)){

printf(\ exit(0); }

if(fclose(fp2)){

printf(\ exit(0); } }

4.将文件中的数据求和并写入文本文件尾: 文件Int_Data.dat 中存放了若干整数,将文件中所有数据相加,并把累加和写入该文件的最后。试编写相应程序。

解答:

#include #include int main(void) {

FILE *fp; int x,sum=0;

if((fp=fopen(\ printf(\ exit(0); }

while(!feof(fp)){ fscanf(fp,\ sum+=x; }

fprintf(fp,\ if(fclose(fp)){

printf(\ exit(0); }

return 0; }

5.输出含for的行: 将文本文件test.txt 中所有包含字符串“for”的行输出。试编写相应程序。 解答:

#include #include #include char s[999]; int main(void) {

FILE* fp; int i;

if((fp=fopen(\ printf(\ exit(0); }

while(!feof(fp)){

fgets(s,999,fp); if(strlen(s)>3){

for(i=0;i

if(s[i]=='f'&&s[i+1]=='o'&&s[i+2]=='r') printf(\ } }

if(fclose(fp)){

printf(\ exit(0); }

return 0; }

6.删除文件中的注释: 将C语言源程序(hello.c) 文件中的所有注释去掉后存入另一个文件(new_hello.c)。试编写相应程序。 解答:

#include #include int main(void) {

FILE *fp1,*fp2;

char ch,ch1,ch2,s[99];

if((fp1=fopen(\ printf(\ exit(0); }

if((fp2=fopen(\ printf(\ exit(0); }

while(!feof(fp1)){ ch=fgetc(fp1); if(ch=='/'){

if((ch1=fgetc(fp1))=='*')

while(fgetc(fp1)!='*'&&(ch1=fgetc(fp1))!='/') fseek(fp1,-sizeof(ch1),1); else if(ch1=='/'){ ch='\\0'; for(;ch1!='\\n';ch1=fgetc(fp1)) ch1='\\0'; } }

else if(ch!=EOF) fputc(ch,fp2); }


C语言程序设计(第3版)何钦铭 颜 晖 第12章 文件(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计算机软件毕业设计智能小区数字化停车场管理系统 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: