我已经为此挣扎了很长一段时间了,它可能是完全愚蠢的(当你看你的代码太长时间的情况下经常是这样^^'),但我不能弄清楚。
我有一堆要写入的文件和下面的代码:
outfileMatrix = new ofstream(path+to_string(trialI)+".csv");
outfileEvents = new ofstream(path+to_string(trialI)+"events.csv");
outfileMeta = new ofstream(path+to_string(trialI)+"meta.csv");
//...
vector<string> v = getTimeHistory();
*outfileEvents << "Subject ID ; " << "TrialIndex ; " << "Timestamp ;" << "Action ID ; " << "Duration ;" << endl ;
for(std::vector<string>::size_type i = 0; i!=v.size(); i++) {
cout << "Coucou" << endl ;
*outfileEvents << subjectID << " ; " << trialInd << " ; " << v.at(i);
cout << subjectID << " ; " << v.at(i) << endl ;
}
//...
vector<string> w = getMatrixHistory();
for(std::vector<string>::size_type i = 0; i!=w.size(); i++) {
*outfileMatrix << subjectID << " ; " << trialInd << " ; " << w.at(i) << endl ;
}
我得到的输出将在标准输出上很好(即cout工作得很好),但我的outfileEvents
只包含我用作标题的第一行。应该在for循环中添加的所有内容都没有添加。现在我检查了v的大小,它大于0,并且无论如何cout
打印数据很好,因此它确实通过了for
循环,只是数据没有添加到文件中。
我很感激你能提供的帮助。
不能刷新、关闭或删除流。因此,不能保证实际的磁盘写入操作已经完成。