设为首页 加入收藏

TOP

C语言文件输入输出函数笔记
2014-11-24 00:11:53 来源: 作者: 【 】 浏览:13
Tags:语言 文件 输入 输出 函数 笔记

发现最近写的程序总是要用到文件操作,所以把C语言与文件输入输出有关的函数复习一下。

C语言是通过将一个文件类型指针与文件关联起来来对文件进行打开、关闭、输入、输出。

文件类型为FILE(实际上是一个结构体)。定义一个文件指针为FILE *fp;就可以将fp和某个文件关联起来进行操作了。例如要打开一个文件:

FILE *fp;

fp=fopen("filename",“打开方式”);//fopen的返回值为NULL或指向文件的指针

或者直接FILE *fp=("filename","打开方式");

如果要重定向只需将指针fp和另一个文件关联。意思是可用一个文件指针操作多个文件。

文件使用完后要及时关闭。这是个好习惯。关闭函数为fclose(fp);这样fp就不在和之前指向的文件关联了。

1.判断文件是否打开成功: www.2cto.com

判断文件是否打开成功可用fopen的返回值if((fp=fopen("filename","r"))==NULL)则打开失败。

2.判断文件是否结束:

判断ASCII文件是否结束fgetc()会返回结束标志EOF(即-1)由于二进制文件数据会出现-1所以必须用函数feof(fp)判断,feof(fp)==1则已结束。

3.单个字符的输入输出:fgetc()和fputc()

ch=fgetc(fp);fp为文件指针,且fgetc()不会忽略空格和回车符,只能用于读入字符。

相应的fputc(ch,fp);向文件输出字符时也不会忽略空格,回车符

因为fgetc()返回字符所以fgetc()和fputc()通常嵌套使用:fputc(fgetc(in),out)。

fputc()的返回值为输入的字符或EOF(-1)(失败的情况下)

fgetc()的返回值为读入的字符(包括文件结束标志EOF(-1))

4.数据块的输入输出:fread(buff,size,count,fp)和发fwrite(buffer,size,count,fp)

buffer是一个指针,对于fread,它是读入数据的存放地址,对于发fwrite它是要输出数据的地址,

size是指要读写的字节数,count是要进行读写多少个size字节的数据项。

如果成功fread和fwrite都返回成功输入和读取的数据块个数有可能比count小;

注意:fread参数buffer指向的空间必须大于或等于要读入的数据块大小。

fread和fwrite一般用于二进制文件的输入输出。用于ASCII文件字符发生转换的情况下可能出现与原设想的情况不同。

5.putw()和getw()用来对磁盘文件读写一个整数。

例如putw(10,fp);//返回值为输出的数字(int)

int i=getw(fp);//失败则返回-1

但注意putw()和getw()都是按二进制输入输出的。

所以如果你用putw()输入数据到文件后以文本的方式打开看到的将都是乱码。

同样如果你在文本文件中输入了数字并保存,用getw()来读入的话读入的结果并不是你想象的那样。因为它是按二进制读的

摘自 shimachao的专栏

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇模板化继承、泛型继承、Veneers的.. 下一篇多个文件夹的makefile

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: