#c #linux #docker
Вопрос:
Я пытаюсь сделать что-то, что кажется очень простым, чтобы получить пользовательский ввод с помощью c в консоли Linux. Однако просто используя:
#include <iostream>
int main()
{
int amount;
std::cout << "Input your number: ";
std::cin >> amount;
}
Это просто пропускает cin, я пытался смыть поток, но это не имеет значения.
Я искал ответ в течение 2 дней. Но другие люди, похоже, прекрасно справляются с этим.
Разница может заключаться в том, что я запускаю его внутри контейнера docker?
Комментарии:
1. Возможно
stdin
, закрыта. Вы запускаете его в интерактивном режиме (-it
) в своем контейнере?2. Используете ли вы эту
-a
опцию при запуске контейнера? Я думаю, что это должно помочь, вот документы для параметров докера3. Я попробовал и то, и другое одновременно, и каждое по отдельности. И то, и другое не работает. Он продолжает пропускать cin специально. Даже никаких ошибок или предупреждений.
4. Вы можете проверить
eof
, просто чтобы убедиться, чтоstdin
он закрыт.std::cout << std:.cin.eof() << 'n';
5. Что делать, если вы начнете
bash
с contaner (... -it container /bin/bash
) — это сработает?