[英]how do you pass in string with a string variable to a function in C++
我有一個帶有默認參數的函數,該函數在屏幕上顯示文本。 像這樣:
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請求添加stringstream:
#include <sstream>
...
std::stringstream ss;
int livesRemaining = 5;
ss << "Lives remaining: " << livesRemaining;
DrawScreenString(1,5, ss.str(), 0xF00000, NULL);
您可以將字符串“ Lives:”附加到liveRemaining變量中,如下所示:
"Lives : %d :"+Integer.toString(uicolor)
要么
"Lives : %d :"+uicolor + ""
要么
"Lives : %d :"+String.valueOf(uicolor)
最后,例如:
DrawScreenString(10, 5,"Lives : %d :"+Integer.toString(uicolor), 0xF14040, NULL);
livesRemaining = 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.