如何在字符串中添加数字?

时间:2011-11-21 10:30:27

标签: c++

我想做这样的事情(显示我在SDL游戏中运行的FPS):

SDL_WM_SetCaption("FPS: " + GetTicks(&fps)/1000.f, NULL);

但Visual Studio intellisens抱怨表达式必须具有整数或枚举类型。

我做错了什么?

4 个答案:

答案 0 :(得分:7)

如果这确实是C ++,请考虑流;

std::ostringstream str;    
str << "FPS: " << GetTicks(&fps)/1000.;    
SDL_WM_SetCaption(str.str().c_str(), NULL);

答案 1 :(得分:5)

C不支持将简单类型(如intfloat)转换为更复杂的类型(如字符串)。

您应该检查sprintf功能:

char buffer[64];
sprintf("FPS: %f", GetTicks(&fps)/1000.f);
SDL_WM_SetCaption(buffer, NULL);

答案 2 :(得分:1)

在C中,您可以使用sprintf

执行此操作

点击此链接:

http://msdn.microsoft.com/en-us/library/ybk95axf(v=vs.71).aspx

不要使用+来添加char指针(这就是它们在C中的含义,而不是字符串)。

编辑:

如果这是C ++,则根据编辑,使用std::string运算符重载的+。您仍然需要将数字转换为字符串。

此外,它被称为连接

答案 3 :(得分:0)

您可以使用字符串,或者如果您已经开始使用新的当前C ++标准,那么还有std::to_string

#include <string>
#include <iostream>

int main() {
    const std::string str = "Foobar " + std::to_string(42);
    std::cout << str << '\n';
}