C语言文件操作

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

#include "stdio.h" gets(地址表达式); gets(地址表达式 地址表达式); #include "stdlib.h" fgets(地址表达式 最大长度,文件指针); fgets(地址表达式,最大长度,文件指针); 地址表达式, //#include "string.h" void main() puts(地址表达式 puts(地址表达式); 地址表达式); { fputs(地址表达式 文件指针) fputs(地址表达式,文件指针); 地址表达式, FILE *fin,*fout; char lin[255]; *fin,* //定义文件指针 //定义文件指针 fin=fopen("data.txt","r"); fin=fopen("data.txt","r"); //打开输入文件 //打开输入文件 if(fin==NULL){ 无需' 无需'\n' puts("The file does not exist!");exit(0); } fout=fopen("datacopy.txt","w"); //建立输出文件并打开 //建立输出文件并打开 fgets(lin,255,fin); fgets(lin,255,fin); //从文件读入一行 //从文件读入一行 while(!feof(fin)){ while(!feof(fin)){ //判断输入文件是否读完 //判断输入文件是否读完 //lin[strlen(lin)-1]='\ //lin[strlen(lin)-1]='\0'; puts(lin); //在屏幕上显示所读行 //在屏幕上显示所读行 fputs(lin,fout); fputs(lin,fout); //将所读行写入输出文件 //将所读行写入输出文件 fgets(lቤተ መጻሕፍቲ ባይዱn,255,fin); //从文件读入一行 //从文件读入一行 } fclose(fin); fclose(fout); //关闭 //关闭 }
#include "stdio.h" scanf("格式控制符 输出列表 scanf("格式控制符",输出列表); 格式控制符",输出列表); #include "stdlib.h" fscanf(文件指针 "格式控制符 输出列表 fscanf(文件指针, "格式控制符",输出列表); 文件指针, 格式控制符",输出列表); void main(void) printff("格式控制符 输出地址列表 printff("格式控制符",输出地址列表); 格式控制符",输出地址列表); { fprintf(文件指针 格式控制符",输出地址列表); fprintf(文件指针 "格式控制符 输出地址列表 文件指针, char ch;FILE *fin,*fout; , "格式控制符",输出地址列表); ch;FILE fin,* //定义文件指针 //定义文件指针 fin=fopen("data.txt","r"); fin=fopen("data.txt","r"); //打开输入文件 //打开输入文件 if(fin==NULL){ printf("The file does not exist!\n");exit(0); exist!\ } fout=fopen("datacopy.txt","w"); //建立输出文件并打开 //建立输出文件并打开 fscanf(fin,"%c",&ch); fscanf(fin,"%c",&ch); //从输入文件读入一个字符 //从输入文件读入一个字符 while(!feof(fin)){ while(!feof(fin)){ //判断输入文件是否读完 //判断输入文件是否读完 printf("%c",ch); //在屏幕上显示所读字符 //在屏幕上显示所读字符 fprintf(fout,"%c",ch);//将所读字符写入输出文件 fprintf(fout,"%c",ch);//将所读字符写入输出文件 fscanf(fin,"%c",&ch);//从输入文件读入一个字符 fscanf(fin,"%c",&ch);//从输入文件读入一个字符 } fclose(fin);fclose(fout); //关闭 //关闭 }
2. 文件类型
文件仅有二种类型:文本文件和二进制文件, 文件仅有二种类型:文本文件和二进制文件,文本文件又称为 ASCII码 二者主要区别为文件内容和文件尾表示的不同。 ASCII码。二者主要区别为文件内容和文件尾表示的不同。 ①文件内容 若不考虑汉字,文本文件是由图形字符和五个控制字符构成。 若不考虑汉字,文本文件是由图形字符和五个控制字符构成。 图形字符:33(!)图形字符:33(!)-126(~) 控制字符: 控制字符: 空格(32) 回车(13) 换行(10) 文件结束符(26) 空格(32) TAB(9) 回车(13) 换行(10) 文件结束符(26) 二进制文件从字节内容而言,可以是0 255之间任何一个数 之间任何一个数。 二进制文件从字节内容而言,可以是0至255之间任何一个数。 ②文件尾表示 文本文件的文件尾是用文件结束符(26)表示的 表示的, 文本文件的文件尾是用文件结束符(26)表示的,可利用读入字 符是否为EOF来判断文件尾 来判断文件尾。 符是否为EOF来判断文件尾。 因文件结束符(26)可能是二进制文件的一个数据 可能是二进制文件的一个数据, 因文件结束符(26)可能是二进制文件的一个数据,二进制文件 尾不能用文件结束符EOF 来判断, 尾不能用文件结束符EOF 来判断,通常利用文件长度来确定文件 尾。
FILE //定义文件指针 //定义文件指针 #include "stdio.h" * 变量名 #include "stdlib.h" fopen("文件名 打开方式 fopen("文件名","打开方式") 文件名","打开方式") void main() //NULL为 //NULL为0,1表示打开成功,0表示不成功。 表示打开成功, 表示不成功。 { feof(文件指针 feof(文件指针) 文件指针) /* 1表示文件指针位于文件 1表示文件指针位于文件 char ch;FILE尾fin,*表示文件指针未位于文件尾。*/ ch;FILE * ,0表示文件指针未位于文件尾。 *fin,*fout; //定义文件指针 //定义文件指针 fin=fopen("data.txt","r"); fin=fopen("data.txt","r"); //打开输入文件 //打开输入文件 变量名=getchar() 变量名=getchar() if(fin==NULL){ 变量名=fgetc(文件指针 文件指针) 变量名=fgetc(文件指针) printf("The file does not exist!\n");exit(0); exist!\ putchar(变量名 putchar(变量名) 变量名) } fputc(变量名 文件指针) fputc(变量名,文件指针) 变量名, fout=fopen("datacopy.txt","w"); //建立输出文件并打开 //建立输出文件并打开 ch=fgetc(fin); ch=fgetc(fin); //从文件读入一个字符 //从文件读入一个字符 while(!feof(fin)){ while(!feof(fin)){ //判断文件是否读完 //判断文件是否读完 putchar(ch); //在屏幕上显示所读字符 //在屏幕上显示所读字符 fputc(ch,fout); fputc(ch,fout); //将所读字符写入输出文件 //将所读字符写入输出文件 ch=fgetc(fin); //从文件读入一个字符 //从文件读入一个字符 } fclose(fin); fclose(fout); //文件关闭 //文件关闭 }
3. 标准文件指针 stdin、stdout、 stdin、stdout、stderr
操作系统将外部设备(显示器、键盘、打印机等)视为一 操作系统将外部设备(显示器、键盘、打印机等) 个文件来管理,其中显示器和键盘视为标准文件, 个文件来管理,其中显示器和键盘视为标准文件,文件指针 名由系统定义。 名由系统定义。 显示器:标准输出文件,文件指针名为stdout。 显示器:标准输出文件,文件指针名为stdout。 显示器:标准出错输出文件,文件指针名为stderr。 显示器:标准出错输出文件,文件指针名为stderr。 二个文件指针可指向同一个文件) (二个文件指针可指向同一个文件) 键盘:标准输入文件,文件指针名为stdin。 键盘:标准输入文件,文件指针名为stdin。 当程序开始运行,系统自动打开三个标准文件, 当程序开始运行,系统自动打开三个标准文件,这三个文件 指针和对应设备相关联。 指针和对应设备相关联。 当程序停止运行,系统自动关闭三个标准文件。 当程序停止运行,系统自动关闭三个标准文件。 将键盘输入视为输入字节流。 将键盘输入视为输入字节流。 将显示在屏幕的数据视为输出字节流。 将显示在屏幕的数据视为输出字节流。 putchar(c) 等价于fputc(c,stdout) 等价于fputc(c,stdout) getchar( )等价于fgetc(stdin) )等价于 等价于fgetc(stdin) printf("%d",100) 等价于 fprintf(stdout,"%d",100) scanf("%f",&price) 等价于 fscanf(stdin,"%f",&price)
计算机等级考试
(文件操作) 文件操作)
二级C 二级C
jhwen@it.sspu.cn
1. 文件使用的一个简单例子 文本文件复制) (文本文件复制)
注意: 注意: 调试时,请在文件正文尾部添加一个换行, 调试时,请在文件正文尾部添加一个换行,否 则有可能发生尾部数据无法读入的错误。 则有可能发生尾部数据无法读入的错误。
二进制文件利用函数feof来判断文件尾 二进制文件利用函数feof来判断文件尾。若feof为0,则表示文 来判断文件尾。 feof为 件指针未处于文件尾; feof为 则表示文件指针已处于文件尾。 件指针未处于文件尾;若feof为1,则表示文件指针已处于文件尾。 因文本文件有确定的文件长度,文本文件也可利用feof函数来 因文本文件有确定的文件长度,文本文件也可利用feof函数来 判断文件尾。 判断文件尾。 ③文件特性 文本文件具有可编辑性,所有源程序文件都是文本文件。 文本文件具有可编辑性,所有源程序文件都是文本文件。几乎 所有编译程序都提供文本文件的编辑器,也可利用Windows应用 所有编译程序都提供文本文件的编辑器,也可利用Windows应用 程序“记事本”进行编辑; 程序“记事本”进行编辑; 二进制文件通常是由程序生成而得。一般来说, 二进制文件通常是由程序生成而得。一般来说,文本文件是不 可编辑的,除非使用特殊的工具软件。 可编辑的,除非使用特殊的工具软件。
4. fopen函数 fopen函数
使用fopen函数的一般形式: 使用fopen函数的一般形式: 函数的一般形式 FILE *fp; fp=fopen(字符串 文件使用方式); fp=fopen(字符串,文件使用方式); 字符串, 字符串:包括路径的文件名,通常为字符串常数;若缺省路径, 字符串:包括路径的文件名,通常为字符串常数;若缺省路径, 则为当前工作目录, dsp文件所在目录 文件所在目录。 则为当前工作目录,即dsp文件所在目录。 文件使用方式 "r" "w" "a" "rb" "wb" "ab" 含义 打开一个文本文件,只读,默认按顺序读。 打开一个文本文件,只读,默认按顺序读。 建立并打开一个文本文件,只写,默认按顺序写。 建立并打开一个文本文件,只写,默认按顺序写。 打开一个文本文件,在文件尾部添加数据。 打开一个文本文件,在文件尾部添加数据。 ……二进制 ……二进制…… 二进制…… ……二进制 ……二进制…… 二进制…… ……二进制 ……二进制…… 二进制……
相关文档
最新文档