如何在单独的行中写入数据?

时间:2014-11-19 22:46:52

标签: c++ file io fstream

我想在单独的行中写入文件数据。代码如下所示:

#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
void writeToFile(const vector<double> &data){
    ofstream outFile("newData.txt", std::ofstream::binary);
    double num1 = 1, num2 = 2, num3 = 4;
    for (const auto &it : data) {
        outFile << it << endl;
    }
    outFile.close();
}
int main(){
    vector<double> data { 1, 2, 3, 4 };
    writeToFile(data);
    return 0;
}

“newData.txt”文件的输出是:

123

我想得到:

1
2
3

我使用endl,但它不起作用。你知道如何解决它吗?感谢。

2 个答案:

答案 0 :(得分:1)

不要将std::ofstream::binary用于文本文件。打开为:

ofstream outFile("newData.txt", std::ofstream::out);

或等效地:

ofstream outfile("newData.txt");

答案 1 :(得分:1)

因为你是以二进制模式打开文件。尝试使用outstream outFile(&#34; new.txt&#34;),这将以文本模式打开文件,endl现在应该在单独的行中写入数字。