第10章 对文件的输入和输出

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ch=getchar();
while(ch!='#') { fputc(ch,fp);
putchar(ch); ch=getchar(); } fclose(fp); }
scanf("%d",&m); while(m!=0) { fprintf(fp,"%d,",m);
printf("%d ",m); scanf("%d",&m); }
步2:调试,存盘
步3:修改增加文件指针操作 main() {char s1[80],s2[80]; int i,j,k=0; FILE *fp; fp=fopen("D:\\file10.out","w"); if(fp==NULL)
{printf("Can not open \n"); exit(0);} gets(s1); s2[k++]=s1[0]; for(i=1;s1[i]!='\0';i++) {
3.文件指针的定位
(1)feof()
格式: feof(fp) 功能:检查文件位置指针是否在结尾处,若是返回0,否则返回非0. 常用方式: while(!feof(fp)){ };
(2)rewind()
格式:rewind(fp) 作用:将位置指针移到文件头部,无论原来在何处
(3)fseek()
格式:fseek(fp,偏移量,起始位置) 功能:将文件的读写指针移动到指定的位置 起始位置: SEEK_SET 文件首, SEEK_END文件尾,
文件的关闭 :fclose(文件指针);
10.3 顺序读写数据文件
1.写函数 (1) fputc() 格式:fputc(ch,fp) 功能:将字符ch写入fp所指的文件中 (2) fputs() 格式: fputs(str,fp) 功能:将str所指的字符串写到fp所指的文件中 (3) fprintf() (适用于文本文件) 格式:fprintf(文件指针,格式字符串,输出表列) 功能:按指定的格式将若干个数据写入文件中 (4) fwrite() (适用于二进制文件) 格式:fwrite(buffer,size,count,fp) 功能:将内存中类型相同的数据写入fp指定的文件中 buffer:输出数据的地址, size:字节数, count:个数 例:若已定义int a[10]; fwrite(a,2,5,fp);作用
{printf("cannot open file\n"); exit(0); } if((out=fopen(outfile,"w"))==NULL)
{printf("cannot open file\n"); exit(0); } while(!feof(in)fputc(fgetc(in),out); fclose(in);fclose(out); }
P342 例10.3
省上机考试结果存盘
例:对一字符串进行操作,重复的只 出现一个. 程序运行结果以文件 名file10.out存入D盘,源程序以 file1.c存入D盘.
步1: 建立文件file1.c,编写源程序 #include "stdio.h” main() {char s1[80],s2[80]; int i,j,k=0; gets(s1); s2[k++]=s1[0]; for(i=1;s1[i]!='\0';i++) { for(j=0;j<k;j++) if(s1[i]==s2[j]) break; if(j>=k) s2[k++]=s1[i]; } s2[k]='\0'; printf("\n%s\n%s",s1,s2); }
定义指向文件的指针,用指针变量指向打开的文件 FILE *fp; fp=fopen(文件名,使用文件方式);
常用: fp=fopen(“d:\\myfile.dot","w"); if(fp==NULL) {printf("can not open\n");exit(0);}
或 if((fp=fopen("D:\\myfile.dot","w")) ==NULL) { printf(“Can not open this file\n”); exit(0);}
第10章 对文件的输入和输出
10.1 C文件的有关知识 文件:存储在外部存储介质上数据的集合
程序文件:源程序文件(.c)、目标文件(.obj)、可执行文件(.exe) 数据文件:文本文件(ASCII码文件、text文件) 、二进制文件
文件名:文件的标识 由文件路径、文件主干和文件的后缀构成。 例:D:\CC\temp\file.dat C语言中用 ”D:\\CC\\temp\\file.dat”表示
文件缓冲区 :内存中的一块区域 文件类型的指针
FILE类型为文件类型(结构体类型),包含在"stdio.h"头文件中 例:FILE *fp; 定义一个指向FILE类型结构体的指针变量,fp称为文件指针 文件操作的基本步骤 (1) 定义FILE类型的指针变量 (2) 打开文件 (3) 对文件进行读、写 (4) 关闭文件
例10.2 将一个磁盘文件中的信息复制到另一个磁盘文件中。 #include <stdio.h> main() { FILE *in,*out; char ch,infile[10],outfile[10]; printf("Enter the infile name:\n"); scanf("%s",infile); printf("Enter the outfile name:\n"); scanf("%s",outfile); if((in=fopen(infile,"r"))==NULL)
10.2 打开与关闭文件
文件的打开: fopen(文件名,使用文件方式); 功能: 返回指向文件的指针 文件名:字符串常量、字符数组名 使用文件的方式: (P335) "r", "w", "a", "r+", "w+", "a+" "rb", "wb", "ab" ,"rb+", "wb+", "ab+"
2.读函数 (1) fgetc() 格式:fgetc(fp) 功能:从fp所指的文件中读一字符 (2) fgets() 格式: fgets(str,n,fp) 功能:从fp指向的文件读长度为n-1的字符串,存放到字符 数组str中 (3) fscanf() (适用于文本文件) 格式:fscanf(文件指针,格式字符串,地址表列) 功能: (4) fread() (适用于二进制文件) 格式:fread(buffer,size,count,fp) 功能: buffer:数据存放的地址, size:字节数, count:个数
SEEK_CUR 文件当前位置 偏移量:指针移动的字节数,>0后移,<0前移
例10.1 从键盘输入若干个字符,把它们存入到文件中,直
到用户输入一个“#”结束。
#include <stdio.h>
main()
{ FILE fopen("f:\\my.txt","w");
if(fp==NULL)
{printf("cannot open file\n");exit(0);}
for(j=0;j<k;j++) if(s1[i]==s2[j]) break;
if(j>=k) s2[k++]=s1[i]; } s2[k]='\0'; printf("\n%s\n%s",s1,s2); fprintf(fp,"\n%s\n%s",s1,s2); fclose(fp); } 步4:运行程序 步5:源程序再次存盘
相关文档
最新文档