Считать значения из input.txt и записать в output.txt на C++

На олимпиадах по программированию для ввода данных в программу используют, как правило, файл с названием input.txt(содержит входные данные), а для вывода используется output.txt(содержит все выходные данные). В данной статье мы разберем, как нам брать данные из файла input.txt и записывать в output.txt.

Из input.txt в output.txt

Из input.txt в output.txt

Может показаться, что это неудобно, и проще всего организовать ввод данных через консоль, попросив об этом пользователя примерно таким сообщением «Введите значение N:». Однако, использование файлов input.txt и output.txt позволяет автоматизировать проверку ответа участника олимпиады, что в разы ускоряет подведение итогов.

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

Мы уже говорили, как считывать данные из файла и записывать данные в файл посредством функций стандартной библиотеки <iostream> языка программирования C++. Давайте же применим наши знания в решении данной задачи.

Считывание и ввод данных из input.txt

Организуем ввод всех данных из файла input.txt в наши переменные и массивы. Я покажу, как считать разные типы данных: числа, строки, ряды чисел(для массива).

Итак, для начала создадим файл input.txt, откроем с помощью текстового редактора и заполним его различными значениями. Я разместил пару чисел на одной строке, одно число на следующей строке, 10 чисел еще на одной строке и строку текста на последней. Файл input.txt содержит следующее:

Теперь напишем программу, которая будет брать все эти значения и заносить в нужные нам переменные.

Допустим, мне нужно занести первые два числа на первой строке(15 и 20) в переменные a и b соответственно.

Значение числа на второй строке(10) в переменную N, и при этом, договоримся, что на второй строке число указывает на количество чисел, размещенных на третей строке. То есть на третей строке у нас N чисел через пробел, их мы будем заносить в массив.

И, наконец, на четвёртой строке файла у нас расположено слово, его мы тоже занесем в переменную.

Теперь напишем программу, которая считает это всё и поместит в переменные, с которыми мы сможем работать. Я буду размещать код поэтапно, чтобы было понятно, что и где добавилось. Для начала Вы можете узнать как считывать из файла в C++.

Подключим необходимые заголовки

Определим переменные

Откроем файл input.txt для чтения

Считаем первые два числа из файла input.txt в переменные a и b

Разделителем чисел в файле служат пробелы. Поэтому просто выводим поток из fin прямо в переменные по порядку.

Считаем число со второй строчки в переменную N

Указатель положения в файле сместился автоматически на следующую строчку и считал число.

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

Теперь определяем массив с размером N и вносим в него следующие 10 чисел из файла

В результате массив mass[] заполнился следующими 10-ю числами из файла(числами с третьей строки).

И теперь считаем следующую за всем этим слово

Теперь выведем значения всех переменных в консоль

Компилируем и запускаем

Полученные значения из файла

Полученные значения из файла

Весь листинг написанной нами программы для чтения из файла и записи в переменные с последующим выводом их значений:

Итак, с вводом данных из файла в переменные мы разобрались. Идем дальше.

Запись выходных данных в файл output.txt

Записывание данных в файл очень похоже на обычный вывод данных в консоль. Вы передаете в поток различные данные, как делаете это с потоком cout. Попробуем записать данные в файл output.txt, такие как число и строка. Разместим их на разных строках.

Осуществляется это аналогично, как и со считыванием.

Подключаем необходимые заголовки.

Определяем переменные и заносим в них наши значения, которые мы запишем в файл.

Откроем файл output.txt для записи.

Теперь, аналогично с обычным выводом в консоль, передаем в поток файла наши данные.

Закрываем файл.

Теперь компилируем и запускаем программу, после чего открываем файл output.txt с помощью текстового редактора и видим записанные в него значения наших переменных, размещенных на разных строках.

Содержимое файла output.txt

Содержимое файла output.txt

Весь код программы для записи переменных в файл:

Вот мы и разобрались с выводом данных в файл output.txt.

Шаблон считывания данных из input.txt и записи в файл output.txt

Теперь создадим шаблон программы для использования в будущих решениях олимпиадных задач, чтобы каждый раз не писать один и тот же код для получения данных из input.txt и записи в output.txt.

Синтезируем две наши написанные программы и получим следующий код.

Вот и получился шаблон. Проверим его.

Допустим, нам нужно взять первое число из файла input.txt и записать его в файл output.txt.

Для этого просто определяем числовую переменную, считываем данные из потока fin, и выводим значение переменной в поток fout. Всё просто, вот так:

В файле input.txt у меня записано число 15, после запуска программы в файле output.txt появилось число 15. Всё работает, всё просто.

Код программы:

Итоги

Итак, мы научились получать данные из файла и записывать их в другой файл. Создали шаблон для будущих решений олимпиадных задач. Кстати, если вы решаете задачи по программированию на языке C++, то загляните в раздел с решениями задач. Если у Вас остались вопросы, то задавайте их в комментариях.

 

Считать значения из input.txt и записать в output.txt на C++: 2 комментария

  1. Николай

    То чувство, когда с этим возишься дольше, чем с решением самой задачи.:)
    Пример шаблона считывания и записи хороший, сохраню себе. Спасибо за идею.

  2. Gudvin

    А как таким образом считать строку из файла? У меня считает только одно слово до пробела, а нужно чтобы считывало все предложение до конца строки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *