C语言文件操作总结

1. 二进制模式和文本模式

文本模式二进制模式
C可以认识Ctrl+Z为文件结尾C只会把Ctrl+Z当做文件中的一个字符,真正的文件结尾在后面
MS-DOS用\r\n组合表示换行符,C将\r\n看作\n程序将看到这两个字符

此外,文件的第一个字符可能不是文件的第一个字符,所以用文本文件打开,ftell()可以返回正确的文件当前位置。而使用二进制方式打开,则可能得不到正确的结果。

2. 文本I/O和二进制I/O

如果将整数12345使用文本IO函数fprintf(fp, "%d", num)输入到文件指针fp所指向的文件中,实质上是将字符1,2,3,4,5输入到了文件中。占了5个字节。
而使用二进制IO函数fwrite(&num, siezof(num), 1, fp)输入到文件指针fp所指向的文件中,则是将12345的二进制形式输入到了文本中,占一个int大小的字节。

C Prim Plus中的示图

文本模式的IO函数可以用在二进制视图下打开的文件(rbwb等),二进制模式的IO函数也可以用在文本视图下打开的文件(rw等)。但一般情况下还是在文本视图下使用文本IO,二进制模式下使用二进制IO。
大概是因为文本模式的目的是使得人类能够直接阅读文件中的内容,要支持一种编码(ASCII、UTF8)。而二进制是方便计算机读取数据,同时使文件更小。

参考

C Prim Plus 第五版
C语言文本方式和二进制方式打开文件区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值