在c ++中将向量写入csv

时间:2014-05-07 03:33:21

标签: c++

我正在尝试用c ++写一个.csv final的向量,但.csv文件的格式错误。

我目前正在这样做:

    ofstream myfile(rtn);
    int vsize = returns.size();
    for(int n=0; n<vsize; n++)
     {
     myfile << returns[n] << '\t';
     myfile << "," ;
     }

哪个有效,但它会像这样写出矢量:

a,b,c,d,(所有在一行但不同的列)

我需要写代码:

 a
 b
 c
 d

全部在一列但在不同的行上。有没有人对如何做到这一点有任何建议?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以隐式循环遍历矢量。将 std :: cout 替换为 std :: ofstream 以输出到文件。

#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>

int main() {

    std::vector<std::string> v;
    v.push_back("a");
    v.push_back("b");
    v.push_back("c");

    std::copy(v.begin(), v.end(), std::ostream_iterator<std::string>(std::cout, "\n"));


    return 0;
}

答案 1 :(得分:0)

ofstream myfile(rtn);
int vsize = returns.size();
for (int n=0; n<vsize; n++)
{
    myfile << returns[n] << endl;
}

在每个字符输入文件后写入一个结束字符。另一种方法是使用'\n'代替endl,但endl通常是受欢迎的,因为它会在换行符之后刷新缓冲区。