任何人都会想到,当一个简单的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)
以十进制形式打印.