Windows
读
二进制方式读(打开文件时加上ios::binary参数)
>>方式:将文本中的内容看作字符串转化后读入数据中,不会读入\n、\r、空格等。考虑in >> a,根据a数据类型的不同来进行不同的转化。
例:int a;
则读入a为123123,在计算机中的编码是整型123123对应的编码,而不是文件中存储的字符型编码。若文件为:
则读入失败,a置任意值(大多数情况下为0),in.good()置0。
read方式:把文件中存放的内容的编码原封不动直接读入数据中,。
例:int a;
则读入a为825438769,在计算机中的编码为31 33 32 31(16进制),恰好对应1321在文件中的编码。
则读入的a为1633771873,在计算机中的编码为61 61 61 61(16进制),恰好对应aaaa在文件中的编码。
文本方式读
<<方式:与二进制方式读相同。
read方式:遇到\r\n时会读作\n,其余与二进制方式读相同。
写
二进制方式写(打开文件时加上ios::binary参数)
<<方式:使用该运算符向文件中写时,所有类型均被转化为字符串写入文件中,其将回车写作\n。例:
文件及其16进制

write函数:使用write函数向文件中写时,是以字节方式写进去的,即写进文件的为数据在计算机中的编码,其将回车写作\n。例:
文件及其16进制

文本方式写
<<方式:将回车写作\r\n,其余与二进制方式相同。例子与上面相同,只给出16进制表示:
write方式:将回车写作\r\n,其余与二进制方式相同。例子与上面相同,只给出16进制表示:
cin、cout读写方式
cin与cout读写行为与文本方式读写文件行为完全相同,只不过一个是在缓冲区中读写,一个是在文件中读写。
直接对文件进行写操作
当直接通过图形化界面用键盘打字对文本文件进行写时,行为与文本方式写文件相同。即回车会写作\r\n,字符均以其ascii形式存于文件中。
Linux
由于无论以什么方式写入回车,其都被当做\n写入文件中,所以读也只能读到\n,可以认为,linux文件读写方式与Windows下二进制方式读写文件的行为相同。(即使将windows下的文件存入linux下,即回车为\r\n,用文本方式读会读到\r\n,而不是\n)。
即linux下读写行为更加一致。