在Javascript
中,我可以使用模板字符串
来格式化字符串。
const cnt = 12;
console.log(`Total count: ${cnt}`);
如果我使用 Python
,那么我可以使用 f-string
:
age = 4 * 10
f'My age is {age}'
但是,如果我正在使用 C++(17)
,那么最好的解决方案是什么(如果可能的话)?
我认为更简单的方法是使用std::to_string
:
std::string str = "My age is ";
str += std::to_string(age);
std::ostringstream
也可以很好地工作,并且同样有用:
在您的源文件顶部使用此代码:
#include <sstream>
然后在代码中,您可以这样做:
std::ostringstream ss;
ss << "My age is " << age;
std::string str = ss.str();
你可以使用sprintf
函数。
sprintf(dest_string, "My age is %d", age).
但是使用sprintf会导致错误,最好使用snprintf:
snprintf(dest_string, size , "My age is %d", age);
其中size
为最大字节数。
如果你想要写入标准输出:
const int cnt = 12;
std::cout << "Total count: " << cnt << "\n";
写入到任何其他流的方式都类似。例如,将std::cout
替换为std::ofstream
以写入文件。如果您需要格式化的字符串:
std::ostringstream oss;
oss << "Total count: " << cnt << "\n";
std::string s = oss.str();
std::cout << s;
fmt::print("Total count: {}", cnt);
。 - HolyBlackCatsize_t age = 40; std::string str = "我的年龄是 " + std::to_string(age);
- asmmo