c++ - 为什么 stringstream 会产生奇怪的值?

标签 c++ stringstream

因此,我正在尝试在我的程序中使用字符串流,以便获得一些格式化的字符串(尤其是因为我需要将数字转换为字符串)。

问题是,我的程序崩溃了,当我用 Visual Studio 调试它时,在我的 Spy 窗口中,我看到我的 stringstream 的字符串缓冲区产生了(当试图向它添加“Framerate”时):

"FramerateÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍýνý««««««««ÍÍÍþ"

代码:

std::stringstream s;
s << "Framerate";

当我尝试获取关联的字符串时,我的代码将崩溃... 我找不到任何解释,也找不到我的代码的问题......

编辑:事实证明这些字符不是问题,stringstream 使用 str() 返回预期的字符串。

最佳答案

stringstream 的内部缓冲区不需要以 null 终止。但是,当您在 stringstream 对象上调用 str() 时,您将得到一个空终止字符串。很可能您的崩溃原因在其他地方。

关于c++ - 为什么 stringstream 会产生奇怪的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15307734/

相关文章:

c++ - stringstream 字符串后有一个单词的奇怪行为

stringstream - C++ 从 unsigned char* 到 stringstream : Segmentation fault (core dumped) error

c++ - 启用 ItemClipsChildrenToShape 后,如何在 QGraphicsScene 中进行精确的鼠标事件处理?

c++ - CPPUnit 我如何编写测试?

C++ 运行时间,以毫秒为单位

c++ - std::stringstream 的默认 `fill character` 是什么?

c++ - 制作逗号分隔字符串时如何处理最后一个逗号?

c++ - BMP文件格式混淆

C++ 正确使用 stringstream::str()?