【发布时间】:2019-04-22 02:00:31
【问题描述】:
以下代码有什么区别:
代码 #1:使用二进制模式
int main()
{
std::fstream w("D:\\file.txt", std::ios::out | std::ios::binary);
char *p = "Hello World\r\nHi";
w.write(p, strlen(p));
// Close the file
w.close();
}
代码 #2:使用文本模式
int main()
{
std::fstream w("D:\\file.txt", std::ios::out);
char *p = "Hello World\r\nHi";
w.write(p, strlen(p));
// Close the file
w.close();
}
这样写字符串时使用二进制模式还是文本模式有关系吗?
【问题讨论】:
-
由于您使用的是 Windows,因此在文本模式下
'\n'被写入两个字符'\r' '\n'。 -
由于
\n的处理,windows上的文件会有所不同。在十六进制编辑器中查看。 -
是的,我使用的是 Windows 8.1。
-
在我的代码中,我将
w.write(..用于二进制和文本模式。有关系吗? -
重复的问题有 C 代码而不是 C++。