c++ - 这些是将 printf 的输出设置为字符串的方法吗?

标签 c++ printf

我需要将 printf("%02X", buffer[0]) 的输出放入一个字符串中。

理论上是这样的:

string str = printf("%02X", buffer[0]) +printf("%02X", buffer[1]) +printf("%02X", buffer[2]) +printf("%02X", buffer[3]);

但是,那是行不通的,我不知道该怎么做。

感谢任何帮助,谢谢。

最佳答案

printf的返回值是写入的字符数,使用snprintf :

char s[BIG_ENOUGH];

snprintf(s, BIG_ENOUGH, "%02X %02X %02X %02X ", buffer[0],
                                                buffer[1],
                                                buffer[2],
                                                buffer[3]);

std::string str(s);

此外,您可以忘记 xprintf 方法并使用 C++ 流:

std::ostringstream s;

s << std::hex;

for (int i=0; i<4; i++)
    s << std::setfill('0') << std::setw(2) << buffer[i] << ' ';

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

关于c++ - 这些是将 printf 的输出设置为字符串的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19382198/

相关文章:

c++ - C++ 多重继承的真实例子是什么?

arrays - 在 C 中只打印一次数组中的所有元素?

c - 按列打印 AVL 树

c++ - 单个 SetEvent() 可以触发多个 WaitForSingleObject()

c++ - 点到直线的正交投影

c++ - 奇怪的 SDL 内存使用取决于每像素位数

c++ - 如何打印预定义的 cflags

c++ - dll到主程序通信

c - 在整数指针前面写 (void*) 有什么意义?

c++ - 回归虚无?