将stringstream内容写入到stream中

我目前使用std::ofstream如下:

 std::ofstream outFile; outFile.open(output_file); 

然后,我尝试将std::stringstream对象传递给outFile ,如下所示:

 GetHolesResults(..., std::ofstream &outFile){ float x = 1234; std::stringstream ss; ss << x << std::endl; outFile << ss; } 

现在我的outFile除了垃圾outFile什么也没有包含:“0012E708”全部重复。

GetHolesResults我可以写

 outFile << "Foo" << std:endl; 

它会在outFile正确输出。

任何build议我做错了什么?

你可以做到这一点,不需要创buildstring。 它使输出stream读出右侧stream(可用于任何stream)的内容。

 outFile << ss.rdbuf(); 

如果你使用std::ostringstream并想知道为什么没有用ss.rdbuf()写入,那么使用.str()函数。

 outFile << oStream.str(); 

当将一个stringstream rdbuf传递给一个stream时,换行符不会被转换。 input的文本可以包含\n所以findreplace将无法正常工作。 旧的代码写到一个fstream并将其切换到一个stringstream会丢失endl翻译。