如何創建類似於snprintf的消息(我可以在其中使用通用文本,%d爲整數,並且只需在sprintf連接參數時顯示),以避免串聯? (我需要創建結果字符串像You need more %d coins
,此刻我做壞的方式來連接和返回值'You need more' + some_stringified_value + 'coins'
)在C++中如何創建類似於snprintf的消息並更改消息中的值?
回答
「規範」 C++的方式是使用stringstream
,像這樣:
std::string somefunc(int number)
{
std::stringstream ss;
ss << "You need " << number << " more coins";
std::string str = ss.str();
return str;
}
您可以使用snprintf在C++以及:
int snprintf (char * s, size_t n, const char * format, ...);
例如(從上述鏈接):
/* snprintf example */
#include <stdio.h>
int main()
{
char buffer [100];
int cx;
cx = snprintf (buffer, 100, "The half of %d is %d", 60, 60/2);
snprintf (buffer+cx, 100-cx, ", and the half of that is %d.", 60/2/2);
puts (buffer);
return 0;
}
輸出:
The half of 60 is 30, and the half of that is 15.
@Mgetz我認爲它說printf()而不是snprintf(),我編輯和糾正。他也沒有要求「爲什麼這會是更好的選擇」,因此我沒有提供這樣的答案。 –
「爲什麼它會是一個更好的選擇」就是我,就像我說的那樣,我會對任何一個C++問題的C回答下降,除非這個海報可以提供一個非常好的理由,他們不會與這個問題保持密切關係,並提供答案。 C. – Mgetz
@Mgetz我明白了。但是,我希望你知道,倒退是因爲「這個答案沒有用。」而不是「我的個人意見是我不喜歡答案。」 :P –
- 1. 如何在Android中創建類似WhatsApp的聊天消息塊?
- 2. 如何在c中創建xml消息?
- 3. 如何在c#中創建SOAP消息?
- 4. 在'消息'中創建消息
- 5. 創建類似於whatsapp的消息歷史(objective-c)
- 6. 如何創建類似於JGrowl的用戶通知消息
- 7. 使用PrimeFaces創建類似於p:消息的消息而不添加到FacesContext?
- 8. 從消息描述中創建消息
- 9. 如何使用sendible api在消息框中創建消息?
- 10. 將類似於iPhone的消息分組消息應用程序
- 11. 如何更改Ext.MessageBox消息中的行?
- 12. 如何在Python AssertionError中更改消息?
- 13. 在C#中爲Gmail API創建消息
- 14. 如何在wpf中創建消息框
- 15. 如何創建類似消息窗口的Skype?
- 16. 類似於p的Primefaces組件:消息
- 17. 在tkinter消息框中更改消息顏色的一部分
- 18. 類似Facebook的消息框
- 19. 如何使這個MySQL查詢按類組/消息類似於消息?
- 20. 如何在Biztalk 2010中構建WCF請求消息的消息
- 21. 如何更改Assert.Fail消息
- 22. C#創建MIME消息?
- 23. 如何創建dbus消息?
- 24. 如何創建APDU消息
- 25. 如何在sql server 2008中更改自定義消息的消息?
- 26. 如何在Spring中更改消息傳遞異常的失敗消息
- 27. 如何更改默認的p:dataTable空消息消息
- 28. 如何在OMNeT ++中創建消息(.msg)的子類?
- 29. 如何創建類似於iPhone buildin SMS應用程序的bubbble消息框?
- 30. 如何更改Jersey創建的錯誤消息?
您可以在C++中使用的snprintf爲好,不是嗎? – duDE
[Boost :: Format](http://www.boost.org/doc/libs/1_54_0/libs/format/) – milleniumbug