1

現在、の内容を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);to をループの前に移動し、to をループの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): 重複したキー)

4

2 に答える 2