按关键词阅读: 第13章文件 第13章_文件
返回值: 关闭成功返回值为;否则返回EOF(-1),13.4 文件的读写,一、字符输入输出函数(fputs()和fgets() fputs函数 函数调用: fputs ( ch , fp ) ; 函数功能: 将字符(ch的 。
8、值)输出到fp所指向的文件中去 。
返回值: 如果输出成功 , 则返回值就是输出的字符; 如果输出失败 , 则返回一个EOF,13.4 文件的读写(续,fgets函数 函数调用: chfgets(fp); 函数功能: 从指定的文件读入一个字符,该文件必须是以读或 读写方式打开的 。
返回值: 读取成功一个字符 , 赋给 。
如果遇到文件结束符 , 返回一个文件结束标志 EOF,13.4 文件的读写(续,常见的读取字符操作 从一个文本文件顺序读入字符并在屏幕上显示出来: ch = fgetc(fp); while(ch!=EOF) putchar(ch); ch = fgetc(fp); 注意:EOF不是可输出字符 ,。
9、因此不能在屏幕上显示 。
由于字符的ASCII码不可能出现 , 因此EOF定义为 是合适的 。
当读入的字符值等于时 , 表示读入 的已不是正常的字符而是文件结束符,13.4 文件的读写(续,常见的读取字符操作 从一个二进制文件顺序读入字符: while(!feof(fp) ch = fgetc(fp); 注意:ANSI C提供一个feof()函数来判断文件是否 真的结束 。
如果是文件结束 , 函数feof(fp)的值为 (真);否则为(假) 。
以上也适用于文本文件的读取,13.4 文件的读写(续,fputc和fgetc函数使用举例: 例3从键盘输入一些字符 , 逐个把它们送到 磁盘上去 , 直到输入一个“”为止,incl 。
10、ude #include void main(void) FILE *fp;
char ch,filename10;
scanf(%s,filename);
if(fp=fopen(filename,w)=NULL) printf(cannot open filen);
exit(0);
/*终止程序*/ ch=getchar( );
/*接收执行scanf语句时最后输入的回车符 */ ch=getchar( );
/* 接收输入的第一个字符 */ while(ch!=# fputc(ch,fp);
putchar(ch);
ch=getchar();
fclose(fp);
,运行情况如下: ( 。
11、输入磁盘文件名) (输入一个字符串) (输出一个字符串,13.4 文件的读写(续,fputc和fgetc函数使用举例: 例3将一个磁盘文件中的信息复制到另一个磁 盘文件中,include #include main( ) FILE *in,*out;
char ch,infile10,outfile10;
printf(Enter the infile name:n);
scanf(%s,infile);
printf(Enter the outfile name:n);
scanf(%s,outfile);
if(in=fopen(infile,r)=NULL) printf(cannot。
12、open infilen);
exit(0);
if(out=fopen(outfile,w)=NULL) printf(cannot open outfilen);
exit(0);
while(!feof(in)fputc(fgetc(in),out);
fclose(in);
fclose(out,运行情况如下: (输入原有磁盘文件名 n: (输入新复制的磁盘文件名) 程序运行结果是将文件中的内容复制到 中去,13.4 文件的读写(续,fputc和fgetc函数使用举例: 例3的改进:复制一个二进制文件 , 利用main 参数 , 在输入命令行是将两个文件名输入,include #include 。
13、 main(int argc,char *argv ) FILE *in,*out;
char ch;
if (argc!=3) printf(You forgot to enter a filenamen);
exit(0);
if(in=fopen(argv1,rb)=NULL) printf(cannot open infilen);
exit(0);
if(out=fopen(argv2,wb)=NULL) printf(cannot open outfilen);
exit(0);
while(!feof(in) fputc(fgetc(in),out);
fclose(in);
f 。
14、close(out,运行方法: 设经编译连接后得到的可执行文件名为a.exe , 则在DOS命令工 作方式下 , 可以输入以下的命令行: a 和 , 分别输入到 和中 , 的内容为a , 的 值等于,13.4 文件的读写(续,二、数据块读写函数(fread()和fwrite() 函数调用: fread (buffer,size,count , fp);
fwrite(buffer,size,count,fp);
参数说明: buffer:是一个指针 。
对fread 来说 , 它是读入数据的存放地址 。
对fwrite来说 , 是要输出数据的地址(均指起始地址) 。
size: 要读写的字节数 。
count: 要进行读写多少个si 。
15、ze字节的数据项 。
fp: 文件型指针,13.4 文件的读写(续,使用举例: 若文件以二进制形式打开: fread(f,4,2,fp);
此函数从fp所指向的文件中读入2个4个字节的数 据 , 存储到数组f中,13.4 文件的读写(续,使用举例: 若有如下结构类型: struct student_type char name10;
int num;
int age;
char addr30;
stud40;
可以用fread和fwrite来进行数据的操作: for(;) fread,13.4 文件的读写(续,使用举例: 例3从键盘输入个学生的有关数据 , 然后把它们转存 到磁盘文件上去,include。
16、#define SIZE 4 struct student_type char name10;
int num;
int age;
char addr15;
studSIZE;
/*定义结构*,13.4 文件的读写(续,void save( ) FILE *fp;
来源:(未知)
【学习资料】网址:/a/2021/0318/0021709442.html
标题:谭浩强C程序设计第三版|谭浩强C程序设计(第三版)课件_第13章_文件( 二 )