std::ostringstream 未返回有效的字符串
std::ostringstream isn't returning a valid string
我正在尝试使用 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()
的调用返回了一个无效的字符串,但我不确定。由于到目前为止我已经修剪了这个程序,所以我仍然遇到问题,我一定犯了一个令人尴尬的简单错误。感谢帮助!
>out.str()
按值返回std::string
,这意味着您正在临时调用.c_str()
。因此,在初始化intString
时,它已经指向无效(已销毁)的数据。
缓存.str()
的结果并使用它:
std::string const& str = out.str();
char const* intString = str.c_str();
相关文章:
- 有哪些有效的方法可以消除一组 100 万个字符串>重复数据?
- 当映射包含字符串向量作为值时,从值中获取键的有效方法
- 如何正确解析子字符串,以便它们对我的新手计算器有效?
- C++程序在将 int 与 cin 一起使用时有效,但不能使用字符串
- 如何检查字符串格式在读取C++文本文件时是否有效?
- 创建字符串数组的有效方法
- 访问包含P的有效索引时返回空格的C++字符串
- 如何有效地将一个大std::字符串的一部分转换为float
- C++Int有效地字符串
- 是否有更有效的方法来生成日期的REGEX字符串
- 是什么使这个以'+'开头的字符串添加成为有效的语句?
- 为C++字符串中的特殊符号 (") 赋予文字含义的有效C++方法
- 拆分字符串输入并查找字符是否有效
- 设计返回有效字符串的方法或函数
- 使用 pair<int、int> 或字符串作为 map<> 键,哪个更有效?
- 字符串只包含有效的字符?
- 如何更有效地计算n个字符串之间的不匹配分数?
- 当字符串中只有一个"GOOD"字符串可用时,从没有空格的字符串中提取第一个单词的最佳和有效方法?
- 为什么字符串(常量字符* s,size_t pos,size_t len = npos)有效?
- 文字字符串有效,但字符串在 file.open() 中不起作用