Урок 4. Файловый ввод-вывод данных

Уроки для начинающих   9 февраля 2012  Автор статьи:  
geekbrains.ru/

Перейдем на следующий уровень ввода-вывода данных. Для удобства использования теперь считывание и запись будем учиться производить не с помощью консоли, а с помощью текстового файла.
Первоочередно создаем два файла input.txt и output.txt в папке с созданным проектом. Далее возвращаемся в среду программирования Visual Studio, жмём комбинацию клавиш ctrl+O (открытие файла) и поочередно выбираем созданные файлы.

#include
#include
using namespace std;
int main()
{
freopen ("input.txt","r",stdin); // заставляем считывать данные из файла
freopen ("output.txt","w",stdout); // заставляем записывать данные в файл
cout << "Make Love! No War!"; return 0; }

Введя код и запустив его нажатием f5 программа предложит нам обновить ранее сохраненный файл

Не пугаемся и соглашаемся! 😉
Для просмотра результата открываем вкладку output.txt и наблюдаем в ней напечатанную в коде фразу "Делайте любовь! Нет войне! (англ.) "

Таким образом функция freopen связывает файл, указанный в первом параметре, способ его использования (r-read(чтение);w-write(запись)) с потоком ввода-вывода данных (stdin(ввод) или stdout(вывод)).


Файловый ввод-вывод данных в Java

  • Litedragon

    чёто не работает

    • Чето не работает это не ответ, нужно указать конкретную ошибку.

  • fix

    Надо добавить #include «StdAfx.h» в код программы, тогда заработает!

    • Необязательно, только, если вы создавали консольное приложение с заголовком, иначе все нужное содержится в iostream.

  • JNoK_

    какая разница с ifstream fin(«input.txt»); ofstream fout(«output.txt»);

    • Тебе придется работать через fin и через fout и подключать лишнюю библиотеку, и на консольку ты уже быстро не сможешь переключится, закомментив одну строчку кода.

      • JNoK_

        спасибо! понял, ну я работаю в far’е по этому трудности не возникают, давно уже консолькой не пользовался, да и к fin’у с fout’ом привык уже 🙂

    • Тебе придется работать через fin и через fout и подключать лишнюю библиотеку, и на консольку ты уже быстро не сможешь переключится, закомментив одну строчку кода.

      • JNoK_

        спасибо! понял, ну я работаю в far’е по этому трудности не возникают, давно уже консолькой не пользовался, да и к fin’у с fout’ом привык уже 🙂

  • Evgeny Koshevoy

    Что то не могу понять… Как взять информацию из input.txt (допустим ввел туда Yo bitch!) и записать её в output.txt?

    freopen («input.txt»,»r»,stdin);

    freopen («output.txt»,»w»,stdout);

    думал этого будет достаточно, но что то не работает…

    • Этой фразой ты просто переопределил поток ввода и поток вывода. Теперь нужно начать именно считывать информацию. Например, cin>>s, где s какая-то объявленная переменная.

  • Антон

    А у меня не выходит, выдает вот это, может, кто-то знает в чем проблема?

    • Антон

      вот картинки

      • Все дело в том, что уроки чутка устарели, и функция freopen стала запрещенной(устарела). Поэтому нужно последовать совету из ошибки и использовать новый вариант этой функции.

  • Барабашка

    Я не полностью понял,как добавить файлы «input.txt» и «output.txt» в проект? Это надо заходить в «файл>создать>создать текстовый документ? Или где? Я толком не понял.

Научиться программировать

  • на Delphi

  • на Java

  • на C++

geekbrains.ru/
geekbrains.ru/