gpt4 book ai didi

c++ - 你如何将带有字符串变量的字符串传递给C++中的函数

转载 作者:行者123 更新时间:2023-11-28 06:57:26 25 4
gpt4 key购买 nike

我有一个带有默认参数的函数,可以在屏幕上显示文本。像这样:

DrawScreenString(int, int, string, int uicolor, font);

然而,我正在尝试像这样传递一个字符串变量“livesRemaining”:

DrawScreenString(10, 5, "Lives  : %d ",livesRemaining, 0xF14040, NULL);
livesRemaining = 3

因此,由于该函数仅接受 5 个参数,因此无法编译,因为该函数认为我正在尝试传递第 6 个参数,而不知道我正在尝试将字符串添加到已经存在的字符串“生命:”

这就是我想要的结果:

Live   : 3

我知道这不是正确的做法,我该怎么做?非常感谢!!

最佳答案

如果您使用的是支持 c++11 的编译器,您可以使用 chris 提到的 to_string 方法 ( http://www.cplusplus.com/reference/string/to_string/?kw=to_string )

DrawScreenString(1,5, "Lives Remaining: " + std::to_string(livesRemaining), 0xF00000, NULL).

但是,如果您的编译器没有 to_string 功能,您可以使用 stringstream 将 ( http://www.cplusplus.com/reference/sstream/stringstream/stringstream/ ) 或 sprintf 构造到 char 缓冲区中,然后从 char 缓冲区构造字符串。我个人不喜欢 sprintf 选项,因为固定缓冲区和如果不检查输入会担心缓冲区溢出,但它是一个选项。

编辑:根据 OP 请求添加字符串流的示例:

#include <sstream>
...
std::stringstream ss;
int livesRemaining = 5;
ss << "Lives remaining: " << livesRemaining;
DrawScreenString(1,5, ss.str(), 0xF00000, NULL);

关于c++ - 你如何将带有字符串变量的字符串传递给C++中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22976834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com