Ввод / вывод из внешнего файла на C / C ++, Java и Python для соревновательного программирования | Комплект 2
Предварительные требования: ввод / вывод из внешнего файла на C / C ++, Java и Python для соревновательного программирования.
В приведенном выше сообщении мы увидели способ получить стандартный ввод / вывод из внешнего файла с помощью обработки файлов. В этом посте мы увидим очень простой способ сделать это. Здесь мы скомпилируем и запустим наш код из терминала или cmd, используя потоки ввода и вывода.
Окружающая среда Windows
В Windows операторы перенаправления перенаправляют потоки ввода и вывода команд из мест по умолчанию в другие места.
- Перенаправление ввода команды (<) : чтобы перенаправить ввод команды с клавиатуры в файл или устройство, используйте оператор <.
- Перенаправление вывода команды (>) : чтобы перенаправить вывод команды из окна командной строки в файл или устройство, используйте оператор>.
Запустите код
a.exe < input_file > output_file
Ввод из input.txt:
GeeksForGeeks
Скомпилировать и запустить:
g ++ test_code.cpp a.exe <input.txt> output.txt
Вывод в output.txt:
GeeksForGeeks
Среда Linux
Перенаправление ввода-вывода в Linux: ввод и вывод в среде Linux распределяются по трем потокам. Эти потоки:
- стандартный ввод (stdin) : стандартный поток ввода обычно переносит данные от пользователя в программу. Программы, которые ожидают стандартный ввод, обычно получают ввод от устройства, такого как клавиатура, но с помощью < мы можем перенаправить ввод из текстового файла.
- стандартный вывод (stdout) : стандартный вывод записывает данные, созданные программой. Если стандартный поток вывода не перенаправлен, он выводит текст на терминал. Используя >, мы можем перенаправить вывод в текстовый файл.
- 3. Стандартная ошибка (stderr) : Стандартная ошибка записывает ошибки, сгенерированные программой, которая в какой-то момент завершилась неудачно. Как и при стандартном выводе, адресатом по умолчанию для этого потока является дисплей терминала.
Linux включает команды перенаправления для каждого потока.
Перезаписать : команды с одной скобкой перезаписывают существующее содержимое пункта назначения.
- > - стандартный вывод
- <- стандартный ввод
- 2> - стандартная ошибка
Добавить : команды с двойной скобкой не перезаписывают существующее содержимое пункта назначения.
- >> - стандартный вывод
- << - стандартный ввод
- 2 >> - стандартная ошибка
Здесь мы будем использовать команду Overwrite, потому что нам не нужно добавлять вывод, т.е. нам нужен вывод только одного единственного кода.
Скомпилировать код C ++
g ++ имя_файла.cpp
Запустите код
./a.out <входной_файл> выходной_файл
Аналогичным образом мы можем предоставить стандартный ввод / вывод из текстовых файлов для C или Java, сначала скомпилировав код, а во время выполнения кода мы предоставим файлы ввода / вывода в заданном формате. Для таких языков, как python, которые не требуют компиляции, мы делаем следующее
python test_code.py <input.txt> output.txt
Статья по теме: Методы ввода Python для соревновательного программирования
Использованная литература :
- Microsoft
- Цифровой океан
Эта статья предоставлена Pratik Chhajer. Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по доступной для студентов цене и будьте готовы к работе в отрасли. Получите все важные математические концепции для соревновательного программирования с курсом Essential Maths for CP по доступной для студентов цене.
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.