ввод c Linux из консоли (внутри контейнера docker)

#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 ) — это сработает?