gpt4 book ai didi

c++ - 将 ostringstream 输出到文件

转载 作者:行者123 更新时间:2023-11-30 02:41:14 35 4
gpt4 key购买 nike

我目前这样做是为了将 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):重复键)

最佳答案

如果有帮助,我在类级别打开一个 std::ofstream m_OutFile 成员,使用 m_OutFile.open(file.c_str(), std::ios::out ); 在构造函数调用中。我还给它一个缓冲区来保存硬盘访问:

m_OutFile.rdbuf()->pubsetbuf(m_CharBuffer,BUFFER_SIZE);

然后每当我想在函数中写入它时,我都会使用

std::ostringstream oStr;
oStr << "some text and things" << std::ends;
m_OutFile << oStr.str() << std::endl;

对我来说很好用。

关于c++ - 将 ostringstream 输出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28276116/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com