我正在尝试使用Windows子系统(用于Linux)编写.dat文件,但是fstream库似乎绕过了每个endline命令。 这是我的代码:
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;
}
我尝试用<< endl
替换<< "\n"
并修改ofstream命令like showed there,但没有任何效果;输出始终为First lineSecond line
,而不是后续行的First line
和Second line
。
此外,当我使用cout
命令将输出打印到视频时,或者在cygwin上编译并运行该代码时,代码也能很好地运行。
是Linux的Windows子系统的问题还是我缺少重要的东西?
答案 0 :(得分:1)
发表评论。
尝试用\ r \ n
替换<< endl
这是由于linux和Windows的行尾不同。
在Windows中,您需要添加回车符,然后添加换行符。
在linux中,不需要回车。
问题来自您正在为linux编译的事实,因此std::endl
将linux版本行结尾,但是您试图在Windows中查看输出。