我已经在这方面挣扎了很长一段时间,这可能是完全愚蠢的(当你长时间查看你的代码时经常出现这种情况^^&# 39;),但我无法弄清楚。
所以我有一堆我想写的文件和以下代码:
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
循环,它只是数据未添加到文件中。
我很感激你能提供的帮助。
答案 0 :(得分:2)
您既不刷新,关闭也不删除流。因此,无法保证实际写入磁盘已完成。