用c++将矢量写入csv

Writing a vector to csv in c++

本文关键字:csv c++      更新时间:2023-10-16

我正试图用c++将矢量写入.csv最终文件,但.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

全部在一列中,但在不同的行上。有人对我该怎么做有什么建议吗?

谢谢!

您可以隐式循环遍历向量。将std::cout替换为-stad::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;
}
ofstream myfile(rtn);
int vsize = returns.size();
for (int n=0; n<vsize; n++)
{
    myfile << returns[n] << endl;
}

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