ofstream 未在 Windows 子系统中为 Linux 生成新行

ofstream not generating new lines in Windows subsystem for Linux

我正在尝试使用 Windows 子系统为 Linux 编写 .dat 文件,但 fstream 库似乎绕过了每个结束命令。 这是我的代码:

int main()
{
   string fname = "DataSheet.dat";
   ofstream fdata (fname.c_str(), ios::out);

   fdata << "First line" << endl;
   fdata << "Second line" << endl;

   fdata.close();

   return = 0;
}

我尝试用 << "\n" 替换 << endl 并修改 ofstream 命令 like showed there,但没有任何效果;在后续行中,输出始终是 First lineSecond line 而不是 First lineSecond line。 此外,当我使用 cout 命令将输出打印到视频时,或者当我在 cygwin 上编译并 运行 时,代码运行良好。
是 Linux 的 Windows 子系统的问题还是我遗漏了一些重要的东西?

通过评论。

Try substituting << endl with \r\n

这是由于linux和windows的行尾不同造成的。 在 windows 中你需要添加一个回车符 return 然后是换行符。
而在 linux 中则不需要回车 return。

问题是因为您正在为 linux 编译,所以 std::endl 将 linux 版本行放在结尾,但您试图在 [=19= 中查看输出].