【发布时间】:2012-01-05 21:32:00
【问题描述】:
我在 Visual Studio 2008 中使用 C++ 编写,但我在使用其他库时遇到问题 - 它们不接受我使用我的 txt 文件生成的行尾 (EOL)。
如何在使用
写入文件时更改它std::ofstream myFile;
myFile.open("traindata.txt");
myFile << "stuff" << endl;
// or
//myFile << "stuff" << '\n';
myFile.close();
编辑 2:
好的,我在代码中犯了一个错误:我为每次迭代都附加了“0”,这样我在 EOL 之前就有了空格。
糟糕。你们是对的。感谢您的帮助。
【问题讨论】:
-
您的代码生成了哪些行尾?这些“其他库”期望哪些行尾?
-
@GregHewgill 我不确定生成的是哪一个,但我需要 LF。
-
当您在 Windows 上使用
endl或\n时,它会在文本模式下自动转换为 CRLF。 -
我建议您熟悉十六进制编辑器,这样您就可以 (a) 找出您现在正在生成的内容,并且 (b) 确保您在更改代码时做了正确的事情.
-
@Jesse 那么我该怎么做才能获得 LF 呢?我试过
myFile.open("traindata.txt", std::ios_base::out|std::ios_base::binary);,但没有成功:(