C++ endl, выводящий шестнадцатеричное число

После компиляции большого количества программ с g ++ неожиданно endl; демонстрирует странное поведение. В дополнение к переводу строки я также получаю консольный вывод шестнадцатеричного числа. Подумав, что у меня возникла проблема с утечкой памяти, я перезагрузил свой Linux Mint Debian Edition (до последней версии), работающий в VMWare поверх Windows. Проблема сохраняется. Ниже моя версия g ++ (без изменений после предыдущего нормального вывода) и тестовая программа с выводом ниже этого.

g ++ ver (Debian 4.8.2-1) 4.8.2

void my_test_function(void)
{
  // cout << "my_test_function is working" << cout << endl;
  cout << "my_test_function is working\n" << cout << endl;
}

Тестовый вывод:

my_test_function is working 0x600ea8

3 ответа

Я не могу комментировать там извините

Линия должна быть примерно такой:

cout << "my_test_function is working" << endl;

У вас неправильный "cout" в заявлении

Попробуйте следовать

void my_test_function(void)
{
  cout << "my_test_function is working" << endl;
}

Фиксированный код:

cout << "my_test_function is working" << endl;

std::cout является объектом ostream. Вам нужно изучить подпись Ostream's operator<< и определение std::cout,

Другие вопросы по тегам