将ostringstream输出到文件

假账号

我目前正在执行此操作,将的内容写入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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章