gpt4 book ai didi

c++ - 不使用 sprintf 或 to_string 将值插入字符串

转载 作者:太空宇宙 更新时间:2023-11-04 16:13:50 25 4
gpt4 key购买 nike

目前我只知道两种将值插入C++字符串或C字符串的方法。

我知道的第一种方法是使用 std::sprintf() 和 C 字符串缓冲区(字符数组)。

第二种方法是使用类似"value of i: "+ to_string(value) + "\n"

但是,第一个需要创建缓冲区,如果您只想将字符串传递给函数,这会导致更多代码。第二个产生长行代码,每次插入一个值时字符串都会被打断,这使得代码更难阅读。

从 Python 我知道 format() 函数,它是这样使用的:

“i 的值:{}\n”.format(i)

大括号被格式中的值替换,并且可以附加进一步的 .format()

我真的很喜欢 Python 在这方面的方法,因为字符串保持可读性,并且不需要创建额外的缓冲区。在 C++ 中有类似的方法吗?

最佳答案

在 C++ 中格式化数据的惯用方法是使用输出流 (std::ostream reference)。如果您希望格式化输出以 std::string 结束,请使用 output string stream :

ostringstream res;
res << "Value of i: " << i << "\n";

使用str()成员函数来获取结果字符串:

std::string s = res.str();

这与格式化输出数据的方法相匹配:

cout << "Value of i: " << i << "\n";

关于c++ - 不使用 sprintf 或 to_string 将值插入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25106901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com