我正在使用ofstream
之类的
out << string-A << "," << string-B << "\n" ;
但是,我找不到设置.csv文件列名的方法。
我的意思是,我想将字符串-A的列名称(比如说)Col-1和字符串-B给(比方说)Col-2。
如何在c ++中做到这一点(我不想使用任何库)。我在Windows环境中工作。
编辑:我希望格式如下:
Col-1 col-2
1 4
2 5
3 6
4 7
列名是标题而不是单元格值?
答案 0 :(得分:1)
你可以先这样做:
out << setiosflags(ios::left) << setw(20)<< "ROW-1" << setiosflags(ios::left) << setw(20) << "ROW-2" << "\n";
答案 1 :(得分:1)
out << "Col-1" << "," << "col-2" << "\n";
out << "1" << "," << "4" << "\n";
out << "2" << "," << "5" << "\n";
out << "3" << "," << "6" << "\n";
out << "4" << "," << "7" << "\n";
由于它是一个文本文件,您可以编写每一行,与数据无关(即,如果它是标题/列名称或数据行)。
但是,您可能希望将数据写为循环,例如:
out << "Col-1" << "," << "col-2" << "\n";
for (var x = 1; x < 5; x++)
{
out << x.ToString() << "," << (x + 3).ToString() << "\n";
}
同样在读取数据时,您想跳过列名称。为此,您可以默认跳过第一行,或者使用#等“注释”字符并动态跳过它。在这种情况下,文件的输出应如下所示:
#Col-1 col-2
1 4
2 5
3 6
4 7
以及产生此代码的代码:
out << "#Col-1" << "," << "col-2" << "\n";
for (var x = 1; x < 5; x++)
{
out << x.ToString() << "," << (x + 3).ToString() << "\n";
}
答案 2 :(得分:0)
您可以像编写数据一样编写名称。你必须在开始时这样做。 但是,根据数据字符串的宽度,您需要进行一些格式化以便数据正确 在Col-1和Col-2下方对齐。
out <<"Col-1"<< " "<<"Col-2"<< "\n" ;