我的文件中没有写任何内容

时间:2015-08-17 15:18:58

标签: c++ stream fstream

我已经在这方面挣扎了很长一段时间,这可能是完全愚蠢的(当你长时间查看你的代码时经常出现这种情况^^&# 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循环,它只是数据未添加到文件中。

我很感激你能提供的帮助。

1 个答案:

答案 0 :(得分:2)

您既不刷新,关闭也不删除流。因此,无法保证实际写入磁盘已完成。