C++ 带printf十六进制的额外数字

C++ 带printf十六进制的额外数字,c++,C++,为什么在使用printf时,在十六进制数字串之后会有额外的数字 cout << printf("%06X ", 0xABCDEF); cout您正在将printf操作的结果传递给cout 一般来说,您可以使用printf或cout printf("%06X",0xABCDEF); //will do what you want in a C-like way 及 std::cout您需要使用cout或printf,而不是两者都使用 printf("%06X ", 0xABCDEF

为什么在使用printf时,在十六进制数字串之后会有额外的数字

cout << printf("%06X ", 0xABCDEF);

cout您正在将printf操作的结果传递给cout

一般来说,您可以使用printf或cout

printf("%06X",0xABCDEF); //will do what you want in a C-like way


std::cout您需要使用cout或printf,而不是两者都使用

printf("%06X ", 0xABCDEF);

cout试试看


coutprintf不能与cout一起工作。printf格式化并打印您的值,它不会返回格式化的值

7是因为printf返回了该值,即写入的字符总数。这个7然后被发送到cout,cout打印它


如果您想使用cout打印格式化文本,最简单的方法是使用,但iostreams库也提供了通过的功能。

您可能应该限定那些使用namespace
std
的文本。
printf("%06X ", 0xABCDEF);
cout << hex << 0xABCDEF;
cout << hex << 0xABCDEF;