C语言中所描述的文件,可以理解为字节流,都是一串"01“(计算机只能识别01)。文件类型有文本文件和二进制文件之分,事实上文件都是一串01,但是文本文件这些01 都能够对应到根据某种字符编码方式翻译的字符(如ASCII码,UTF-8等),二进制文件都是一些0101,这些0101没有与某种特定的字符编码方式相关联,但是也是有一定的翻译规则,这个规则,由具体的文件来决定(如图形文件,音频文件等),比如前一个字节或者多个字节表示XXX,后几个字节表示XX。
可以这样说,文本文件和二进制文件都是二进制文件,它们都是以二进制方式存储的,只是翻译二进制的规则不同,文本文件根据编码方式可以清晰地展现文件的内容给用户,二进制文件则不能。(如编辑器打开一个txt文件和bin文件)
C语言打开文件有文本方式和二进制方式,这两种读写方式的区别在于对"\n"的处理。
文本方式在向文件写数据的时候,如果遇到"\n"(0AH),则将其换成"\r\n".同样读取时候,如果遇到"\r\n",则转换成"\n",二进制文件不存在这种转换.
文件的读写方式还与具体的操作系统相关,上面所说的转换只在Windows中出现,linux/Unix 则不会出现,如果文件中没有涉及换行,那么两种打开方式的处理模式是一样的。
可以这样说,文本文件和二进制文件都是二进制文件,它们都是以二进制方式存储的,只是翻译二进制的规则不同,文本文件根据编码方式可以清晰地展现文件的内容给用户,二进制文件则不能。(如编辑器打开一个txt文件和bin文件)
C语言打开文件有文本方式和二进制方式,这两种读写方式的区别在于对"\n"的处理。
文本方式在向文件写数据的时候,如果遇到"\n"(0AH),则将其换成"\r\n".同样读取时候,如果遇到"\r\n",则转换成"\n",二进制文件不存在这种转换.
文件的读写方式还与具体的操作系统相关,上面所说的转换只在Windows中出现,linux/Unix 则不会出现,如果文件中没有涉及换行,那么两种打开方式的处理模式是一样的。