1.fopen 中的w和wb的区别

您所在的位置:网站首页 电容xc和wb的区别 1.fopen 中的w和wb的区别

1.fopen 中的w和wb的区别

2024-07-05 23:27| 来源: 网络整理| 查看: 265

黑色部分为程序,白色部分为注解,部分内容转载子网络.

1.头文件

#include

#include

2.打开文件

typedef struct { unsigned char head[2]; unsigned char status; unsigned char crc8; unsigned short datalen; }BACKUP_HEAD;     BACKUP_HEAD bhead = { 'A', 'B', 0x0A, 0x0A, 0x0A}; FILE *fp = (FILE *)0x00; if(!(fp = fopen("/dev/mtdblock4", "w+"))) return -0x01; w是以文本方式打开文件,wb是二进制方式打开文件,以文本方式打开文件时,fwrite函数每碰到一个0x0A时, 就在它的前面加入0x0D.其它内容不做添加操作。 如:      fwrite((char *)&bhead,sizeof(BACKUP_HEAD),1,fp);我们的结构体定义了三个0x0A,所以当以文本文件来操作时,遇到0x0A内容不会写进去,而是相当于回车换行. 结果: 将w换成wb+ FILE *fp = (FILE *)0x00; if(!(fp = fopen("/dev/mtdblock4", "wb+"))) return -0x01;重写 fwrite((char *)&bhead,sizeof(BACKUP_HEAD),1,fp);结果为

而二进制方式则会将数据按照在内存中的存储形式原样输出到文件中。

总结:

(1)写入和读取要保持一致。如果写入时采用文本方式,则读取时也应采用文本方式;如果写入时采用二进制方式,则读取时也应采用二进制方式。

(2)不管是文本文件,还是二进制文件,如果统一采用二进制方式进行读写,则不会出错。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3