C语言文件操作(2级考试)_第1页
C语言文件操作(2级考试)_第2页
C语言文件操作(2级考试)_第3页
C语言文件操作(2级考试)_第4页
C语言文件操作(2级考试)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机等级考试

(文件操作)二级Cjhwen@1.文件使用的一个简单例子

(文本文件复制)注意:调试时,请在文件正文尾部添加一个换行,否则有可能发生尾部数据无法读入的错误。#include"stdio.h"#include"stdlib.h"voidmain(){charch;FILE*fin,*fout; //定义文件指针

fin=fopen("data.txt","r"); //打开输入文件

if(fin==NULL){

printf("Thefiledoesnotexist!\n");exit(0);}

fout=fopen("datacopy.txt","w");//建立输出文件并打开

ch=fgetc(fin); //从文件读入一个字符

while(!feof(fin)){ //判断文件是否读完

putchar(ch); //在屏幕上显示所读字符

fputc(ch,fout); //将所读字符写入输出文件

ch=fgetc(fin); //从文件读入一个字符

}

fclose(fin);fclose(fout); //文件关闭}FILE* 变量名

//定义文件指针fopen("文件名","打开方式")//NULL为0,1表示打开成功,0表示不成功。feof(文件指针) /*1表示文件指针位于文件尾,0表示文件指针未位于文件尾。*/变量名=getchar()变量名=fgetc(文件指针)putchar(变量名)fputc(变量名,文件指针)#include"stdio.h"#include"stdlib.h"//#include"string.h"voidmain(){

FILE*fin,*fout;

charlin[255]; //定义文件指针

fin=fopen("data.txt","r"); //打开输入文件

if(fin==NULL){

puts("Thefiledoesnotexist!");exit(0); }

fout=fopen("datacopy.txt","w");//建立输出文件并打开

fgets(lin,255,fin); //从文件读入一行

while(!feof(fin)){ //判断输入文件是否读完

//lin[strlen(lin)-1]='\0';

puts(lin); //在屏幕上显示所读行

fputs(lin,fout); //将所读行写入输出文件

fgets(lin,255,fin); //从文件读入一行

}

fclose(fin);fclose(fout); //关闭}gets(地址表达式);fgets(地址表达式,最大长度,文件指针);puts(地址表达式);fputs(地址表达式,文件指针);无需'\n'#include"stdio.h"#include"stdlib.h"voidmain(void){ charch;FILE

*fin,*fout; //定义文件指针

fin=fopen("data.txt","r"); //打开输入文件

if(fin==NULL){

printf("Thefiledoesnotexist!\n");exit(0); }

fout=fopen("datacopy.txt","w");//建立输出文件并打开

fscanf(fin,"%c",&ch); //从输入文件读入一个字符

while(!feof(fin)){ //判断输入文件是否读完

printf("%c",ch); //在屏幕上显示所读字符

fprintf(fout,"%c",ch);//将所读字符写入输出文件

fscanf(fin,"%c",&ch);//从输入文件读入一个字符

}

fclose(fin);fclose(fout); //关闭}scanf("格式控制符",输出列表);fscanf(文件指针,"格式控制符",输出列表);printff("格式控制符",输出地址列表);fprintf(文件指针,"格式控制符",输出地址列表);2.文件类型文件仅有二种类型:文本文件和二进制文件,文本文件又称为ASCII码。二者主要区别为文件内容和文件尾表示的不同。①文件内容若不考虑汉字,文本文件是由图形字符和五个控制字符构成。 图形字符:33(!)-126(~)

控制字符: 空格(32)TAB(9)回车(13)换行(10)文件结束符(26)二进制文件从字节内容而言,可以是0至255之间任何一个数。②文件尾表示文本文件的文件尾是用文件结束符(26)表示的,可利用读入字符是否为EOF来判断文件尾。因文件结束符(26)可能是二进制文件的一个数据,二进制文件尾不能用文件结束符EOF来判断,通常利用文件长度来确定文件尾。二进制文件利用函数feof来判断文件尾。若feof为0,则表示文件指针未处于文件尾;若feof为1,则表示文件指针已处于文件尾。因文本文件有确定的文件长度,文本文件也可利用feof函数来判断文件尾。③文件特性文本文件具有可编辑性,所有源程序文件都是文本文件。几乎所有编译程序都提供文本文件的编辑器,也可利用Windows应用程序“记事本”进行编辑;二进制文件通常是由程序生成而得。一般来说,文本文件是不可编辑的,除非使用特殊的工具软件。3.标准文件指针

stdin、stdout、stderr

操作系统将外部设备(显示器、键盘、打印机等)视为一个文件来管理,其中显示器和键盘视为标准文件,文件指针名由系统定义。 显示器:标准输出文件,文件指针名为stdout。 显示器:标准出错输出文件,文件指针名为stderr。 (二个文件指针可指向同一个文件) 键盘:标准输入文件,文件指针名为stdin。当程序开始运行,系统自动打开三个标准文件,这三个文件指针和对应设备相关联。当程序停止运行,系统自动关闭三个标准文件。将键盘输入视为输入字节流。将显示在屏幕的数据视为输出字节流。

putchar(c)等价于fputc(c,stdout)

getchar()等价于fgetc(stdin) printf("%d",100)等价于fprintf(stdout,"%d",100)

scanf("%f",&price)等价于fscanf(stdin,"%f",&price)4.fopen函数使用fopen函数的一般形式:

FILE*fp;

fp=fopen(字符串,文件使用方式);

字符串:包括路径的文件名,通常为字符串常数;若缺省路径,则为当前工作目录,即dsp文件所在目录。文件使用方式含义"r"打开一个文本文件,只读,默认按顺序读。"w"建立并打开一个文本文件,只写,默认按顺序写。"a"打开一个文本文件,在文件尾部添加数据。"rb"……二进制……"wb"……二进制……"ab"……二进制……r:打开一个已存在的文件,若文件不存在,fopen函数返回NULL;w:若文件不存在,创建并打开该文件;若文件已存在,打开该文件并清除该文件全部内容;a:若文件不存在,创建并打开该文件;若文件已存在,打开该文件,保留文件已有内容。只能在尾部添加数据,和当前文件指针位置无关。在进行文件操作时,因与外存打交道,有可能出错。错误大都发生在文件打开操作时,尤其是读文件,所以此时一定要加以判断。

file_in=fopen("data_in.txt","r");

if(file_in==NULL){

printf("打开文件错!");exit(0); }

file_out=fopen("data_in_copy.txt","w");

if(file_out==NULL){

printf("建立文件错!");exit(0); } ①当无法打开一个文件时,文件指针的值为NULL,表示不指向任何文件;②exit(0)的作用是终止程序执行,使用exit函数,需在程序首部添加预处理命令:#include<stdlib.h>。③若要改变文件操作方式,必须首先关闭文件,然后按新方式打开文件。fprintf、fscanf

(用于文本文件的存取)

fwrite、fread

(用于二进制文件存取、略)

fprintf、fcanf函数与printf、scanf函数作用相仿,都是格式化读写函数。输出时将数值转换成字符,输入时将字符转换成数值。二者的差别是:前者是标准输入输出设备,而后者是文件。①使用方式:

fprintf(文件指针,格式控制字符串,输出列表)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论