Cout打印十六进制而不是十进制
cout print hex instead of decimal
有没有人想到,一个简单的std::cout
可能会打印十六进制格式的值,当它应该格式化只是一个十进制(像一个整数)?
std:: cout & lt; & lt;"_Agent [" <<目标& lt; & lt;仍然是在"<<((目标-> currWorker) -> getentity () .size ()) & lt; & lt;"实体worker的变化[" <<目标——> currWorker & lt; & lt;"]"& lt; & lt;std:: endl;
将打印:
_Agent [0x2c6d530]仍然在0x1 worker的实体[0x2c520f0]
注意:
1-输出有时是十进制,有时是十六进制
2-行为是相同的,即使我改变((target->currWorker)->getEntities().size())
为(int)((target->currWorker)->getEntities().size())
提示吗?
谢谢
您可能已经将std::cout设置为预先在代码上下文中打印十六进制,但忘记重置。例如:
std::cout<<std::hex<<12;
/*blah blah blah*/
std::cout<<12; //this will print in hex form still
所以你必须像下面这样做
std::cout<<std::dec<<12;
尝试在您的代码中找到像std::cout << std::showbase << std::hex;
这样的行,它将std::cout
设置为以十六进制方式打印输出,并使用0x
基数指示符前缀。要将其重置为显示十进制,在当前计数之前添加std::cout<<std::dec
行。
你可以在这里了解更多关于c++操作符标志的信息
相关文章:
- 如何循环打印顶点结构
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 如何在c++中打印目录
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 在线编译器中的分段C++没有打印消息
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 如何打印大于"无符号长长"的"std::bitset"的十进制值?
- 如何通过输入十进制数打印UTF-8符号?
- 在 c++ 中使用浮点数、双精度打印十进制
- 如何在C++中使用setiosflags打印出十进制数作为八进制数
- 如何打印出十进制(tagDEC)类型的值?
- 在 c++ 中使用 setfill() 以特定格式打印十进制数
- 打印长双变量的所有十进制数字
- 使用流来打印点之后的最大十进制位置
- C++以十进制打印的模板化流字符
- 以十进制打印变量的地址
- 为什么 int -> 十六进制/oct/bin 的转换在输出中打印为纯十进制值?
- Cout打印十六进制而不是十进制
- 以十六进制或十进制形式将std::字符串作为字节序列打印到stdout
- Std::hex/ Std::oct不工作(打印十进制值)