我需要将 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/