То, что я пытаюсь сделать, в основном:
./myProgram < myData.txt
Пока занимаюсь отладкой с CLion IDE. Я просто не могу найти возможность сделать это.
похожий вопрос, но специфичный для продукта MSVS
То, что я пытаюсь сделать, в основном:
./myProgram < myData.txt
Пока занимаюсь отладкой с CLion IDE. Я просто не могу найти возможность сделать это.
похожий вопрос, но специфичный для продукта MSVS
У меня была та же проблема, и кажется, что CLion еще не обрабатывает стандартный ввод.
Я обошел эту проблему, изменив входной поток перед запуском моей программы.
Например, если вы хотите ввести файловый поток внутри вашего стандартного ввода, вы можете написать в своем основном:
std::ifstream in("ABSOLUTE_PATH_TO_YOUR_FILE");
std::cin.rdbuf(in.rdbuf());
Затем вы можете найти способ переключить это изменение потока, когда захотите. Обратите внимание, что для файлов вам нужно будет указать абсолютный путь, поскольку приложение запускается из другого каталога, отличного от текущего.
Я надеюсь, что это может помочь, пока CLion не предоставит реальное решение.
stringstream
, которые вы можете использовать
- person smac89; 11.01.2018
Предполагая, что ваш входной файл myData.txt
, вы можете повторно открыть/повторно использовать поток stdin
, используя freopen
freopen("myData.txt","r",stdin);
если вы хотите сделать то же самое с вашим выводом:
freopen("myOutput.txt","w",stdout);
это будет работать для std::cin, printf и т.д...
Дополнительную информацию об этом можно найти здесь: http://www.cplusplus.com/reference/cstdio/freopen/
Кстати, для этого уже есть запрос фичи. Если вы заинтересованы, вы можете проголосовать здесь, чтобы получить приоритет: https://youtrack.jetbrains.com/issue/CPP-3153
В CLion 2020.1 эта функция встроена:
Перенаправление ввода
Если вам нужно перенаправить ввод из файла в стандартный ввод вашего приложения, теперь вы можете это сделать. Используйте новое поле в конфигурации под названием Перенаправить ввод от. Войти:
Тем не менее, у Clion нет такой функции, как pycharm, где мы можем вводить данные в терминале во время отладки кода.
Но у него есть возможность вводить данные через файл .txt во время отладки.
Изображение окна настроек отладки
Щелкните значок настройки в консоли отладки (в верхнем левом углу), чтобы открыть настройку отладки. Затем установите флажок «Перенаправить ввод из», выберите путь к входному файлу и нажмите «ОК».
Ну вот!
Теперь вы можете вводить данные из текстового файла во время отладки кода.
Для меня CLion создает исполняемый файл в файле с именем «cmake-build-debug». Посмотрите на мою файловую структуру на картинке.
Затем я просто открыл свой терминал и перешел в каталог, содержащий исполняемый файл, и использовал эту команду для передачи текстового файла:
./FirstProject < ../hw1.txt