我有3列在每次迭代(时钟周期)时更改。我希望将这些列的每个值存储在csv文件中。csv文件为"Positions.csv"。假设我想要存储的变量是:columnna, columnB和columnC变量。我的文件将是空的,在每个循环中,它将被columnna,columnB和columnC值填充。我下面的代码不起作用,在输出文件中我只有一行。
我想在文件的末尾添加columnna,columnB和columnC。在每个循环中,我收到这些变量的不同值。
我需要一种在csv文件中添加行的方法。
double columnA , columnB, columnC;
// LOG START
std::ofstream coordscsv;
std::string filename = "Positions.csv";
coordscsv.open(filename);
//**************
std::ifstream data("Positions.csv");
std::string line;
while (std::getline(data, line))
{
std::stringstream lineStream(line);
std::string cell;
while (std::getline(lineStream, cell, ','))
{
coordscsv << cell;
}
}
coordscsv << columnA << ", " << columnB << ", " << columnC << "n";
coordscsv.close();
ifstream
的构造函数的默认参数是ios_base::in
。ios_base::app
.
但是,无论如何,您不应该在每次迭代中打开和关闭文件。打开它一次,除非你想在关闭它时诊断错误,否则你不需要显式地调用close()
(析构函数已经这样做了)。