C\\C++中 fopen中文件打开方式的区别:
在C语言中,大家常用到fopen打开文件,准备进行写操作,再用fwrite把数据写入文件,最后用fclose关闭文件。 如以下C代码: #include <stdio.h> char buf[10] = {10,10,10,10,10,10,10,10,10,10}; FILE *fp = fopen("c:\\test.dat","w"); fwrite(buf,1,10,fp); fclose(fp); FILE *fp1 = fopen("c:\\test1.dat","wb"); fwrite(buf,1,10,fp); fclose(fp1); 我们注意到,程序的第一段定义一个数组,每个分量的值为:10,等价的十六进制为0A。 第二段,先是打开一个文件test.dat进行写操作,再是把10个数据写入文件,最后关闭文件。 第三段,功能差不多,只是文件名换成了test1.dat,打开文件的模式换成了wb. 第二段和第三段有什么区别呢?我们看一下最后的文件内容: test.dat: 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A 0D 0A test1.dat: 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 原因是为什么呢?这就是w 和 wb的区别,w是以文本方式打开文件,wb是二进制方式打开文件