【发布时间】:2012-06-22 22:31:54
【问题描述】:
我正在尝试使用 std::ostringstream 将数字转换为字符串 (char *),但它似乎不起作用。这是我的代码:
#include <windows.h>
#include <sstream>
int main()
{
std::ostringstream out;
out << 1234;
const char *intString = out.str().c_str();
MessageBox(NULL, intString, intString, MB_OK|MB_ICONEXCLAMATION);
return 0;
}
生成的消息框根本没有文本。
这让我相信对out.str().c_str() 的调用返回了无效字符串,但我不确定。由于到目前为止我已经将这个程序精简了但仍然遇到问题,我一定犯了一个令人尴尬的简单错误。感谢您的帮助!
【问题讨论】:
-
+1 表示包含 SSCCE 的简洁明了的问题。不过,我在带有 GCC 4.7.1 的 Windows 7 中得到了正确的文本。
-
@chris :未定义的行为是未定义的。 ;-]
标签: c++ winapi std ostringstream