我正在尝试用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
全部在一列但在不同的行上。有没有人对如何做到这一点有任何建议?
谢谢!
答案 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
通常是受欢迎的,因为它会在换行符之后刷新缓冲区。