二进制文件和ASCII文件
ASCII文件可移植,当需要转换才能输出
如:char ch='5';
int integer=ch-'0';
cout<<"integer"<<integer;
二进制文件不需要转换,当不能在终端或打印机上直接打印,不可移植。
行结束问题:
unix以<line feed>作为行结束符,
而window以<carrige return><line feed>作为结束符。要写入二进制数据,必须使用二进制选项打开文件:
out_file.open("test.out",std::ios::out|std::ios::binary);
非缓冲区文件读写,对系统调用会消耗大量资源,只有在读取或写入大量二进制数据,或对设备,文件进行直接控制时,才使用。
open()
read()
write()
close()
C++输入输出缓冲所有的输出结果。cout,cerr是行缓冲,每还一次行就进行一次缓冲区刷新。
评论