Ввод / вывод из внешнего файла на C / C ++, Java и Python для соревновательного программирования | Комплект 2

Опубликовано: 3 Января, 2022

Предварительные требования: ввод / вывод из внешнего файла на C / C ++, Java и Python для соревновательного программирования.

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

Окружающая среда Windows

В Windows операторы перенаправления перенаправляют потоки ввода и вывода команд из мест по умолчанию в другие места.

  1. Перенаправление ввода команды (<) : чтобы перенаправить ввод команды с клавиатуры в файл или устройство, используйте оператор <.
  2. Перенаправление вывода команды (>) : чтобы перенаправить вывод команды из окна командной строки в файл или устройство, используйте оператор>.

Запустите код

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 распределяются по трем потокам. Эти потоки:

  1. стандартный ввод (stdin) : стандартный поток ввода обычно переносит данные от пользователя в программу. Программы, которые ожидают стандартный ввод, обычно получают ввод от устройства, такого как клавиатура, но с помощью < мы можем перенаправить ввод из текстового файла.
  2. стандартный вывод (stdout) : стандартный вывод записывает данные, созданные программой. Если стандартный поток вывода не перенаправлен, он выводит текст на терминал. Используя >, мы можем перенаправить вывод в текстовый файл.
  3. 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.