cout打印十六进制而不是十进制

rah*_*man 4 c++

任何人都会想到,当一个简单的std::cout格式化十进制格式(如整数)时,它会以十六进制格式打印一个值吗?

例如,我有一行:

std :: cout <<"_ Agent ["<< target <<"]仍然在"<< ((target-> currWorker) - > getEntities().size()) <<"worker的实体["<< target-> currWorker <<"]"<< std :: endl;

哪个会打印:

_Agent [0x2c6d530]仍然属于worker [0x2c520f0]的0x1实体

注意:

1 - 所说的输出是十进制的,有时是十六进制的

2-行为是SMAE即使我改((target->currWorker)->getEntities().size())(int)((target->currWorker)->getEntities().size())

任何提示?

谢谢

Yan*_*ang 16

您可能已将std :: cout设置为在代码上下文中之前打印十六进制,但忘记重置.例如:

std::cout<<std::hex<<12;
/*blah blah blah*/
std::cout<<12; //this will print in hex form still
Run Code Online (Sandbox Code Playgroud)

所以你必须这样做

std::cout<<std::dec<<12;
Run Code Online (Sandbox Code Playgroud)

以十进制形式打印.