c – std :: ostringstream没有返回有效的字符串
发布时间:2020-12-16 02:59:57 所属栏目:百科 来源:网络整理
导读:我正在尝试使用std :: ostringstream将数字转换为字符串(char *),但它似乎不起作用.这是我的代码: #include windows.h#include sstreamint main(){ std::ostringstream out; out 1234; const char *intString = out.str().c_str(); MessageBox(NULL,intStri
我正在尝试使用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,MB_OK|MB_ICONEXCLAMATION); return 0; } 生成的消息框中没有文本. 这让我相信对out.str().c_str()的调用返回一个无效的字符串,但我不确定.由于我已经把这个程序缩减到目前为止,我仍然遇到问题,我一定犯了一个令人尴尬的简单错误.感谢帮助! 解决方法
out.str()按值返回一个std :: string,这意味着你在临时函数上调用.c_str().因此,在初始化intString时,它已经指向无效(已销毁)的数据.
缓存.str()的结果并使用它: std::string const& str = out.str(); char const* intString = str.c_str(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |