Странные проблемы с перезаписью памяти, из-за которых целые числа становятся шестнадцатеричными числами - PullRequest
0 голосов
/ 31 октября 2011

Я нахожусь в процессе отладки чьего-то кода, и у меня есть код вроде

int i = their_val;
std::cout << "output: " << i << std::endl;

Когда я смотрю на вывод журнала, я вижу строки вроде

output: a

Должно ли это случиться? Что-то меняет форматирование cout или что-то странное?

Ответы [ 3 ]

3 голосов
/ 31 октября 2011

Проверьте и посмотрите, передается ли std::hex в std :: cout где-либо.Это может привести к поведению, которое вы видите.

Вы можете принудительно ввести десятичные числа, используя:

std::cout << "output: " << std::dec << i << std::endl;
3 голосов
/ 31 октября 2011

Кто-то cout << std::hex до этого выхода?Это приведет к печати в шестнадцатеричном формате.

0 голосов
/ 31 октября 2011

Вы, вероятно, сделали std::cout << std::hex где-то раньше. Вы можете отменить это с std::cout << std::dec.

std::cout << "output: " << std::dec << i << std::endl;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...