我目前正在执行此操作,将的内容写入ostringstream
文件:
... // -- Loop 1 Start
std::ostringstream osStr;
... // -- Loop 2 Start
cv::string s(osStr.str());
std::istringstream iss(s);
cv::vector<cv::string> subVec;
do{
cv::string sub;
iss >> sub;
subVec.push_back(sub);
} while (iss);
cv::FileStorage fs("subVec.txt", cv::FileStorage::WRITE);
fs << "subVec" << subVec;
fs.release();
... // -- Loop 2 End
... // -- Loop 1 End
但这会覆盖文件中以前的内容。
所以我将移到了cv::FileStorage fs("subVec.txt", cv::FileStorage::WRITE);
循环之前,再fs.release
移到了循环之后。
cv::FileStorage fs("subVec.txt", cv::FileStorage::WRITE);
... // -- Loop 1 Start
std::ostringstream osStr;
... // -- Loop 2 Start
cv::string s(osStr.str());
std::istringstream iss(s);
cv::vector<cv::string> subVec;
do{
cv::string sub;
iss >> sub;
subVec.push_back(sub);
} while (iss);
fs << "subVec" << subVec;
... // -- Loop 2 End
... // -- Loop 1 End
fs.release();
这样做的方式是,它确实不断地写入.txt
,但由于键重复,因此无法使用:
%YAML:1.0
subVec:
- "1"
- "2"
...
- "33"
- "34"
subVec:
- "1"
- "3"
...
- "30"
- "31"
查看如何重复subVec
我正在寻找一种方法来将的内容保存ostringstream
到一个文件中,该文件每次都不会覆盖内容,但实际上是可读的。
OpenCV错误:cvGetFileNode中的解析错误(subVec.txt(27):重复的密钥)
由于反应不多,我将不得不解决此问题:
cv::vector<cv::string> subVec; // -- MOVED
cv::FileStorage fs("subVec.txt", cv::FileStorage::WRITE);
... // -- Loop 1 Start
std::ostringstream osStr;
... // -- Loop 2 Start
cv::string s(osStr.str());
std::istringstream iss(s);
do{
cv::string sub;
iss >> sub;
subVec.push_back(sub);
} while (iss);
... // -- Loop 2 End
... // -- Loop 1 End
fs << "subVec" << subVec; // -- MOVED
fs.release();
尽管这确实使我cv::vector<cv::string>
只能承受这么多的问题。
对此进行修复将是一件好事!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句