对文件的输入输出教案资料.pptVIP

  • 3
  • 0
  • 约5.23千字
  • 约 57页
  • 2019-12-01 发布于天津
  • 举报
printf(“请输入一个字符串(以#结束):); ch=getchar( ); while(ch!=‘#’) { fputc(ch,fp); putchar(ch); ch=getchar(); } fclose(fp); putchar(10); return 0; } 例10.2 将一个磁盘文件中的信息复制到另一个磁盘文件中。 今要求将上例建立的file1.dat文件中的内容复制到另一个磁盘文件file2.dat中。 解题思路:处理此问题的算法是:从file1.dat文件中逐个读入字符,然后逐个输出到file2.dat中。 #include stdio.h #include stdlib.h int main( ) { FILE *in,*out; char ch,infile[10],outfile[10]; printf(输入读入文件的名字:); scanf(%s,infile); printf(输入输出文件的名字:); scanf(“%s”,outfile); if((in=fopen(infile,“r”))==NULL) {printf(无法打开此文件\n); exit(0);} if((out=fopen(outfile,“w”))==NULL) {printf(无法打开此文件\n); exit(0); } 改为rb和wb,则复制一个二进制文件 改为rb和wb,则复制一个二进制文件 while(!feof(in)) { ch=fgetc(in); fputc(ch,out); putchar(ch); } putchar(10); fclose(in); fclose(out); return 0; } 检查当前读写位置是否移到文件末尾 10.3.2 怎样向文件读写一个字符串 读写一个字符串的函数 函数名 调用形式 功能 返回值 fgets fgets(str,n,fp) 从fp指向的文件读入长度为(n-1)的字符串,存放到字符数组str中 读成功,返回地址str,失败则返回NULL) fputs fputs(str,fp) str所指向的字符串写到文件指针变量fp所指向的文件中 写成功,返回0;否则返回非0值 说明: fgets函数的函数原型为: char *fgets (char *str,int n,FILE *fp); 其作用是从文件读入一个字符串 调用时可以写成: fgets(str,n,fp); 说明: fgets(str,n,fp);中n是要求得到的字符个数,但实际上只读n-1个字符,然后在最后加一个’\0’字符,这样得到的字符串共有n个字符,把它们放到字符数组str中 如果在读完n-1个字符之前遇到换行符“\n”或文件结束符EOF,读入即结束,但将所遇到的换行符“\n”也作为一个字符读入 执行fgets成功,返回str数组首地址,如果一开始就遇到文件尾或读数据错,返回NULL 说明: fputs函数的函数原型为: int fputs (char *str, FILE *fp); str指向的字符串输出到fp所指向的文件中 调用时可以写成: fputs(″China”,fp); fputs函数中第一个参数可以是字符串常量、字符数组名或字符型指针 字符串末尾的′\0′不输出 输出成功,函数值为0;失败,函数值为EOF 例10.3 从键盘读入若干个字符串,对它们按字母大小的顺序排序,然后把排好序的字符串送到磁盘文件中保存。 解题思路:为解决问题,可分为三个步骤: 从键盘读入n个字符串,存放在一个二维字符数组中,每一个一维数组存放一个字符串; 对字符数组中的n个字符串按字母顺序排序,排好序的字符串仍存放在字符数组中; 将字符数组中的字符串顺序输出。 #include stdio.h #include stdlib.h #include string.h int main() { FILE *fp; char str[3][10],temp[10]; int i,j,k,n=3; printf(“Enter strings:\n”); for(i=0;in;i++) gets(str[i]); 第10章 对文件的输入输出 示例:向文件data1.dat中写入字符“Hello!”。 #include s

文档评论(0)

1亿VIP精品文档

相关文档