c语言文件类型可分为,C语言教程11文件类型.ppt

C语言教程11文件类型.ppt

例:/* exp15_6.c*/ #include main( ) {FILE *fp; int a; float b; char ch, w[20]; fp=fopen("mystest3.txt", "w"); if (fp= =NULL) printf("file open error\n"); else { scanf("%s", w); while(strlen(w)>1 { scanf("%d %f", &a, &b); fprintf(fp, "%s%4d%5.1f\n", w, a, b); scanf("%s", w); } fclose(fp) } 结果:查看当前目录下的mytest3.txt 的内容。 apple 50 5.5 pear 40 4.4 orange 30 3.3 任意字母 运行情况如下: 小结: 比较上面三个程序,可以看出: 使用 fputc( )、fputs( )、fprintf( )可以达到同一个目的。 例4: P344程序 §11.5 读取顺序文件中的数据 ? 文件的结束标志:EOF 1. 从文件流中读取一个字符 fgetc( fp ) 返回值:读取的字符 有三个重要的读函数 指向文件的指针 注意:若迁到文件结束或调用出错,则返回EOF 2. 从文件流中读取一字符串(读一行字符): 作用:从文件流中读取 n?1 字符,放入数组 s 中。 fgets( char s[ ], int n, *fp); 返回值: s所指的字符串 数组名 n 个字符数 文件指针变量 注意: ? 第 n 个字符为系统加入的空字符'\0' ? 若在第n?1个字符前迁到换行符,停止读写。 ? 若迁到文件结束或调用出错,返回NULL 3.按指定格式从文件流中读取变量 fscanf(文件指针变量, 格式控制符字符串,变量地址表列); 作用:从文件流中按指定的格式,读取变量,并将读取的变量保存到对应的变量中。 例:fscanf(fp,"%s %d %f", name, &n, &p); 文件指针变量 例1:设在当前目录下有一个名为data.txt的文件,内容如下: 要求编一程序将该文件中的内容打印在屏幕上。 apple 30 4.5 pear 20 3.8 banana 25 2.0 orange 30 2.5 /*exp15_1.c*/ #include main( ) { FILE *fp; fp=fopen("data.txt", "r"); char ch; if (fp= =NULL) printf("file open error\n"); else while((ch=fgetc(fp))!=EOF) putchar(ch); fclose(fp); } 例2:/* exp15_2.c*/ #include main( ) { FILE *fp; char w[81]; int k=0; fp=fopen("data.txt", "r"); if (fp= =NULL) printf("file open error\n"); else {while (fgets(w, 80, fp)!=NULL) { k=k+1; printf("%s", w); } printf("k=%d", k); } fclose(fp); } 把文件data.txt的内容打印到屏幕上,并计算该文件有多少行? 例3:/*exp15.3.c*/ #include main ( ) {FILE *fp; char name[20]; int n; float p; fp=flpen("data.txt", "r"); if (fp= =NULL) printf("file open errror\n") else while (fscanf(fp, "%s %d %f", name, &n, &p)!=EOF) printf("name=%s\t n=%d\t p=%6.2f\n", name, n, p); fclose(fp); } 按指定格式读取,并将读取的内容输出到屏幕上。 例4. P.348 程序 P.349 程序 小结:比较上面三个程序,可以看到: 使用fgetc( ), fgets( ), fscanf( )可以达到同样的目的。 §11.6 随机存取文件 回顾:fgetc( ), fputc( ) fgets( ), fputs( ) fscanf( ), fprintf( ) 这些函数都是按顺序读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值