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

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

Мы можем легко избавиться от проблемы, просто сохранив контрольные примеры в указанном файле в нужном месте в соответствии с нашей простотой. Они полезны в таких соревнованиях, как Facebook Hackercup , Google Codejam . Эти соревнования не обеспечивают онлайновую среду, подобную судье, вместо того, чтобы просить вас загрузить входные и выходные файлы.

Для ввода / вывода мы в основном используем эти два типа режимов доступа к файлу, т.е.

  • «R»: означает чтение, поскольку открывает файл для операции ввода, но файл должен существовать в указанном месте.
  • «W»: означает запись, поскольку создает пустой файл для операций вывода. Если файл с таким именем уже существует, его содержимое отбрасывается, и файл обрабатывается как новый пустой файл.

C / C ++

В C / C ++ мы можем использовать freopen для стандартного ввода и вывода. Синтаксис этой функции как:

FILE * freopen (const char * имя файла, режим const char *, FILE * stream);
  • имя файла: это относится к имени файла, который мы хотим открыть.
  • Режим: обсуждено выше.
  • stream: указатель на объект FILE, который идентифицирует поток, который будет открыт повторно.

Мы также можем использовать символическую константу ONLINE_JUDGE для отладки. Поскольку большинство онлайн-судей добавляют этот флаг в конце командной строки перед выполнением нашего кода. Например, в C ++ 11 он будет скомпилирован как

 -std = c ++ 0x -O2 -статик -s -lm -DONLINE_JUDGE 

Таким образом, мы можем воспользоваться этим, используя директиву препроцессора Си .

filter_none

редактировать
близко

play_arrow

ссылка на сайт
brightness_4
код

// Below is C/C++ code for input/output
#include<stdio.h>
 
intmain()
{
#ifndef ONLINE_JUDGE
 
    // For getting input from input.txt file
    freopen("input.txt", "r", stdin);
 
    // Printing the Output to output.txt file
    freopen("output.txt", "w", stdout);
 
#endif
    return0;
}

chevron_right

ДЖАВА

В Java мы можем использовать класс BufferedReader для быстрого класса Input и PrintWriter для форматированного представления в вывод вместе с классами FileReader и FileWriter.

  • FileReader (String filename): этот конструктор создает новый FileReader и дает парсеру команду прочитать файл из этого каталога. Файл должен существовать в указанном месте.
  • FileWriter (String fileName): этот конструктор создает объект FileWriter в указанное место.
filter_none

редактировать
близко

play_arrow

ссылка на сайт
brightness_4
код

// Java program For handling Input/Output
importjava.io.*;
classMain
{
    publicstaticvoidmain(String[] args) throwsIOException
    {
        // BufferedReader Class for Fast buffer Input
        BufferedReader br = newBufferedReader(
                               newFileReader("input.txt"));
 
        // PrintWriter class prints formatted representations
        // of objects to a text-output stream.
        PrintWriter pw=newPrintWriter(new
                BufferedWriter(newFileWriter("output.txt")));
 
        // Your code goes Here
 
        pw.flush();
    }
}
// Thanks to Saurabh Kumar Prajapati for providing this java Code

chevron_right

ПИТОН

В python мы сначала импортируем модуль sys (system), после чего мы будем использовать функцию open (), которая возвращает объект файла, который обычно используется с двумя аргументами: open (имя файла, режим).

  • Первый аргумент - это строка, содержащая имя файла.
  • Второй аргумент - это другая строка (режим), содержащая несколько символов, описывающих способ использования файла.
filter_none

редактировать
близко

play_arrow

ссылка на сайт
brightness_4
код

# Below is Pythone code for input/output
 
importsys
# For getting input from input.txt file
sys.stdin =open('input.txt', 'r'
 
# Printing the Output to output.txt file
sys.stdout =open('output.txt', 'w')

chevron_right

Эта статья предоставлена Shubham Bansal . Если вы хотите GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.


adsense2code6
Мои личные заметки arrow_drop_up

Рекомендуемые сообщения:

adsense2code6