在 C++ 中连接字符串和数字?

Posted

技术标签:

【中文标题】在 C++ 中连接字符串和数字?【英文标题】:Concat strings and numbers in C++? 【发布时间】:2009-02-13 01:39:15 【问题描述】:

我正在尝试连接 "(" + mouseX + ", " + mouseY ")"。但是,mouseX 和 mouseY 是整数,所以我尝试使用如下字符串流:

std::stringstream pos;
pos << "(" <<  mouseX << ", " << mouseY << ")";
_glutBitmapString(GLUT_BITMAP_HELVETICA_12, pos.str());

而且它似乎不起作用。

我收到以下错误:

mouse.cpp:75: 错误:无法将 std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' toconst char*' 转换为参数 2' tovoid _glutBitmapString(void*, const char*)'

我在这个基本字符串 + 整数连接中做错了什么?

【问题讨论】:

可以编辑此问题的人能否将问题更改为“如何将字符串流转换为 const char*?” 【参考方案1】:

glutBitmapString() 需要 char* 并且您正在向它发送一个字符串。像这样在字符串上使用 .c_str() :

_glutBitmapString(GLUT_BITMAP_HELVETICA_12, pos.str().c_str());

【讨论】:

迂腐,但它真的期待“const char *”。如果它想要“char *”,如果没有 const_cast,.c_str() 将无法工作 @Tom:原型要求一个 const char *,所以我不知道为什么需要提及。【参考方案2】:

试试

_glutBitmapString(GLUT_BITMAP_HELVETICA_12, pos.str().c_str());

【讨论】:

@Evan Teran,我认为投反对票是因为在编辑之前他有轻微的输入错误?不过我投了赞成票!

以上是关于在 C++ 中连接字符串和数字?的主要内容,如果未能解决你的问题,请参考以下文章

为啥字符串连接在 C++ 中得到奇怪的结果? [关闭]

在 C++ 中连接字符串

C++ 数组转数字

华为机试真题 C++ 实现数字字符串组合倒序

GCC 如何连接多个 C++ std::string 变量?

在 C++ 中连接 char 数组