Подтвердить что ты не робот

Стандартный ввод CLION при отладке

То, что я пытаюсь сделать, в основном:

./myProgram < myData.txt

Пока я отлаживаю CLI IDE. Я просто не могу найти способ сделать это.

A аналогичный вопрос, но специфичный для продукта для MSVS

4b9b3361

Ответ 1

У меня была такая же проблема, и похоже, что CLion пока не обрабатывает стандартные входы.

Я столкнулся с этой проблемой, изменив входной поток перед запуском моей программы.

В качестве примера, если вы хотите ввести поток файлов внутри своего stdin, вы можете написать в основном:

std::ifstream in("ABSOLUTE_PATH_TO_YOUR_FILE");
std::cin.rdbuf(in.rdbuf());

Затем вы можете найти способ переключения этого потока, когда захотите. Обратите внимание, что для файлов вам необходимо предоставить абсолютный путь, поскольку приложение запускается из другого каталога, чем текущий.

Надеюсь, это поможет, пока clion не предоставит реальное решение.

Ответ 2

Предполагая, что ваш входной файл 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

Ответ 3

Для меня CLION создает исполняемый файл в файле ccmake-build-debug. Проверьте мою файловую структуру на рис.

Исполняемый файл, относящийся к текстовому файлу

Затем я только открыл свой терминал и пошел в каталог, содержащий исполняемый файл, и использовал эту команду для соединения в текстовом файле:

./FirstProject < ../hw1.txt