版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
C语言读写文件有两种方式ASCII 和 二进制。现在举例说明:
内存中的字符或字符串都是文本模式(unicode编码存储,统一长度,定长码,方便)
内存中的其他变量都是以二进制编码存储
程序的代码以文本模式ASCII码方式存储
fprintf写入非char型数据到文件,则文件为ascii类型(即文本文件);
fwirte写入非char型数据到文件,则文件为二进制文件;
1.在windows系统中,文本模式下,文件以"\r\n"代表换行。若以文本模式打开文件,并用fputs等函数写入换行符"\n"时,函数会自动在"\n"前面加上"\r"。即实际写入文件的是"\r\n"。读取的时候自动去掉\r,将\n写入内存。
2.在类Unix/Linux系统中文本模式下,文件以"\n"代表换行。所以Linux系统中在文本模式和二进制模式下并无区别
fprintf则将二进制转换成ASCII输出到文件中,fscanf将读取的ascii码转换成二进制放到内存中
ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:
ASC码:00110101 00110110 00110111 00111000
十进制码: 5 6 7 8 共占用4个字节。