c++ - 我的文件里什么都没写

标签 c++ stream fstream

我已经为此苦苦挣扎了一段时间,它可能完全是愚蠢的(当你查看你的代码太久时通常会出现这种情况 ^^'),但我想不通出。

所以我有一堆要写入的文件和以下代码:

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 循环,它只是数据未添加到文件中。

如果您能提供帮助,我将不胜感激。

最佳答案

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

关于c++ - 我的文件里什么都没写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054005/

相关文章:

c++ - 如何从包含空格的文件中读取字符串 C++

c++ - 其中一种类型本身就是模板类的模板方法

c# - 从 Compact Framework 客户端进行 REST 调用时如何避免 "Bad Request - Invalid Hostname"错误?

c++ - 获取 C++ 输出流中元素的大小

java - 通过 servlet 将 pdf 流式传输到浏览器

c++ - 如何在不关闭 C++ fstream 文件的情况下保存和读取它

c++ - 如何在 C++ 中使用 ',' 作为 getline 分隔符

c++ - 将包含 void 指针的一对转换为一对其他类型的指针

c++ - 如何使用 pugixml 替换节点 pcdata 或文本

c++ - 基于规则的设计