c FILE

来源:互联网 发布:cbox网络电视官方网站 编辑:程序博客网 时间:2024/05/05 23:56



1、验证OK,从设备上某个磁盘空间读文件,并打印出该文件内容到控制台

#include<stdio.h>int main(){FILE *fp;char ch;if((fp=fopen("/home/pateo/work/study/test.c","rt"))==NULL){printf("Cannot open file strike any key exit!");exit(1);}ch=fgetc(fp);while (ch!=EOF){putchar(ch);ch=fgetc(fp);}fclose(fp);}


#include<stdio.h>main(){FILE *fp;char str[11];if((fp=fopen("/home/pateo/work/study/test.c","rt"))==NULL){printf("Cannot open file strike any key exit!");exit(1);}fgets(str,11,fp);printf("%s\n",str);fclose(fp);}


2、文字说明如下:

文件使用方式        意 义“rt”      只读打开一个文本文件,只允许读数据 “wt”      只写打开或建立一个文本文件,只允许写数据“at”      追加打开一个文本文件,并在文件末尾写数据“rb”      只读打开一个二进制文件,只允许读数据“wb”       只写打开或建立一个二进制文件,只允许写数据“ab”       追加打开一个二进制文件,并在文件末尾写数据“rt+”      读写打开一个文本文件,允许读和写“wt+”      读写打开或建立一个文本文件,允许读写“at+”      读写打开一个文本文件,允许读,或在文件末追加数 据“rb+”      读写打开一个二进制文件,允许读和写 “wb+”      读写打开或建立一个二进制文件,允许读和写“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据对于文件使用方式有以下几点说明:1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:r(read): 读w(write): 写a(append): 追加t(text): 文本文件,可省略不写b(banary): 二进制文件+: 读和写2. 凡用“r”打开一个文件时,该文件必须已经存在, 且只能从该文件读出。3. 用“w”打开的文件只能向该文件写入。 若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。4. 若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。5. 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。

3、在C语言中提供了多种文件读写的函数: 

字符读写函数 :fgetc和fputc字符串读写函数:fgets和fputs数据块读写函数:freed和fwrite格式化读写函数:fscanf和fprinf

4、写内容到文件,看到自动创建了string文件,并且你从键盘敲入的内容写到了文件中,当你写完敲回车的时候

#include<stdio.h>main(){FILE *fp;char ch,st[20];if((fp=fopen("string","at+"))==NULL){printf("Cannot open file strike any key exit!");exit(1);}printf("input a string:");scanf("%s",st);fputs(st,fp);rewind(fp);ch=fgetc(fp);while(ch!=EOF){putchar(ch);ch=fgetc(fp);}printf("");fclose(fp);}

5、写完请敲空格,然后回车

#include<stdio.h>main(){FILE *fp;char ch;if((fp=fopen("string","w+"))==NULL){printf("Cannot open file strike any key exit!");exit(1);}printf("input a string:");ch=getchar();while (ch!=' '){fputc(ch,fp);fflush(fp);ch=getchar();}rewind(fp);ch=fgetc(fp);while(ch!=EOF){putchar(ch);ch=fgetc(fp);}printf("");fclose(fp);}


6、针对struct
#include<stdio.h>struct stu{char name[10];int age;}boya[2],boyb[2],*pp,*qq;main(){FILE *fp;char ch;int i;pp=boya;qq=boyb;if((fp=fopen("stu_list","wb+"))==NULL){printf("Cannot open file strike any key exit!");exit(1);}printf("input data : ");for(i=0;i<2;i++,pp++){scanf("%s%d",pp->name,&pp->age);}pp=boya;fwrite(pp,sizeof(struct stu),2,fp);rewind(fp);fread(qq,sizeof(struct stu),2,fp);for(i=0;i<2;i++,qq++){printf("name=%s ,age=%d\n",qq->name,qq->age);}fclose(fp);}

输出:

pateo@pateo-B86N53X:~/work/study$ cc main.c -o mainmain.c: In function ‘main’:main.c:19: warning: incompatible implicit declaration of built-in function ‘exit’pateo@pateo-B86N53X:~/work/study$ ./maininput data : liaojianguo 29 zhulongfeng 29name=liaojianguo ,age=29name=zhulongfeng ,age=29pateo@pateo-B86N53X:~/work/study$ 




原创粉丝点击