我们知道,在进行对文件流的操作时,通常使用流抽取符和插入符(>>, <<)来对文本文件进行操作,使用get()、put()、read()、write()这些函数来进行二进制的操作。那在打开文件时ios::binary还有什么用呢? 原来此标志作用是抑制底层系统服务对文件内容进行的自动转换。
例如:
of << "hello\n";
如果未加binary标识,在win32系统里,输出的是"hello\r\n",系统会把"\n"转换成"\r\n"。如果加了binary标识,输出的就是"hello\n",一共6个字符,不会进行转换。
例如:
of << "hello\n";
如果未加binary标识,在win32系统里,输出的是"hello\r\n",系统会把"\n"转换成"\r\n"。如果加了binary标识,输出的就是"hello\n",一共6个字符,不会进行转换。