流写入文件以及写入字符串变量

stream to write to a file as well as write to a string variable

我正在尝试在函数中将数据放入文件的场景。

func(std::ofstream fileStream, JsonData)
{
parses the Json and does some logic and puts to fil stream
}
std::ofstream fileStream(filename);
func(fileStream, jsonData);
//want a scenario where std::string aa will get values in ofstream.
fileStream.close();

谁能帮我把流数据转换成std::string? 看到ostream可以转成stringstream;并且可以移动到 std::string ;但无法使用 ostream 打开文件。

请帮帮我...

改变

func(std::ofstream fileStream, JsonData)
{
parses the Json and does some logic and puts to fil stream
}

成为

func(std::ostream& Stream, JsonData)
{
    //parses the Json and does some logic and puts to fill Stream
}

现在你可以做的是将 stringstream 传递给函数并填充它。然后你可以从中得到一个字符串,并将它的缓冲区传递给像

这样的ofstream
JsonData data;
std::stringstream ss;
// populate string stream
func(ss, data); 
// get string
std::string stringifiedData = ss.str();
// open file
std::ofstream fileStream(filename);
// write to file
fileStream << ss.rdbuf();