如何创建类似于 snprintf 的消息(我可以在其中使用 %d 表示整数的通用文本,并且仅当我需要在 sprintf 中显示连接参数时)以避免串联?(我需要创建类似You need more %d coins
的结果字符串,目前我正在以不好的方式连接和返回值 'You need more' + some_stringified_value + 'coins'
)
问问题
131 次
2 回答
6
“规范” C++ 方式是使用stringstream
,如下所示:
std::string somefunc(int number)
{
std::stringstream ss;
ss << "You need " << number << " more coins";
std::string str = ss.str();
return str;
}
于 2013-08-07T13:07:18.270 回答
1
您也可以在 C++ 中使用snprintf :
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.
于 2013-08-07T13:12:22.143 回答