2011-11-21 149 views
1

我想要做這樣的事情(顯示FPS IM在我的SDL遊戲運行的是什麼):如何添加一個數字到字符串?

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

但Visual Studio中intellisens抱怨表達式必須具有整數或枚舉類型。

我做錯了什麼?

+1

如果它的C++,你應該看'的std :: string'。 – jv42

+0

刪除了SDL標記:此問題與C++中的字符串格式有關,而與SDL無關。 –

回答

7

如果這真的是C++,請考慮流;

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

C不支持將簡單類型(如intfloat)轉換爲更復雜的類型(如字符串)。

您應該檢查sprintf功能:

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

這是一個C++問題,而不是一個C(編輯:我意識到這個問題已經編輯) –

1

在C語言中,你可以使用sprintf做到這一點。

退房此鏈接:

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

不要使用+添加字符指針(這是他們在C什麼,而不是字符串)。

編輯:

如果這是C++,按照編輯,使用std::string,其具有操作者+重載。您仍然需要將數字轉換爲字符串。

另外,它被稱爲級聯

0

您可以使用字符串,或者如果你已經解決了當前新的C++標準,也有std::to_string

#include <string> 
#include <iostream> 

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