Стандартный ввод работает нормально, когда я запускаю свою программу, но не работает в режиме отладки, хотя вывод тоже работает нормально.
Я запускаю Eclipse Photon (4.8) с CDT, и для своей инструментальной цепочки я использую gcc, предоставленный Cygwin, и использую gdb в качестве отладчика.
Вывод, когда я запускаю программу без отладки
Вывод, когда я запускаю программу с отладкой, обратите внимание на переменные часы и консоль
Цепочка инструментов Cygwin обнаруживается автоматически, потому что она присутствует в переменной среды PATH, я также сбросил рабочее пространство, но это не помогло.
ОБНОВЛЕНИЕ: если я поставлю несколько строк cin одну за другой, первый cin вернет число, отличное от того, что было на входе, и каждый последующий cin вернет ноль в качестве значения.
ОБНОВЛЕНИЕ 2: я нашел обходной путь. Если вы используете внешнюю консоль (cmd) вместо той, что есть в Eclipse, она работает. Изображение
еще один обходной путь - использовать файл вместо стандартного ввода, но это не то, что мне нужно
См. Также этот вопрос, возможно, вы столкнулись с этой проблемой.
@ HighCommander4 первая ссылка бесполезна, так как у меня есть gdb 7.12.1 и CDT 9.5.1
самое странное то, что раньше это работало, а теперь, очевидно, не работает.
@ HighCommander4 вторая ссылка также бесполезна, так как я использую cout, который по умолчанию сбрасывается.
я не знаю, стоит ли мне попробовать переустановить eclipse и вместо cygwin использовать mingw
Кстати, что я должен использовать: mingw или mingw-w64?
Я думал, что cout сбрасывается, только если вы используете std::endl, а не "\n".
Что касается других ваших вопросов, не знаю, извините; Сейчас я держусь подальше от Windows.
@ HighCommander4 да, endl очищает буфер
И код на вашем скриншоте не использует endl.





глупый обходной путь - вручную отредактировать значения в окне "просмотра переменных"