Ботва для ИУ-5


№27, 28. Файлы и потоки; методы открытия файлов для обмена информацией

К экзамену по информатике запостил Fenix [2007.06.14]  

Ахха! Вот мы и подошли к весьма простой, но ОЧЕНЬ шаманской теме, ибо файловые потоки без бубна работайут крайне редко (в моих кривых руках))

Кстати, вообще говоря любая работа с файлами подразумевает использование потоков. И вообще, потоками реализован весь ввод-вывод в C/C++, но на лабах “потоковой” называется работа с файлами через библиотеку fstream.
Итак.

Итак, для начала нужно как минимум подключить библиотеку fstream.h:

#include <fstream.h>

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

ifstream myFStr; //для чтения         

ofstream myFStr; //для записи         

fstream myFStr; //для любых операций

Потом нужно связать поток с нужным файлом:

myFStr.open(filename [, метод открытия]);

Методы открытия:

ios::app
ios::ate
ios::binary
ios::in
ios::out
ios::trunc

Их можно комбинировать логической операцией “ИЛИ”, т.е.

myFStr.open(filename, ios::in | ios::out);         

//откроет файл filename для чтения и записи

Но в 99% случаев вам это не понадобится, так как этот параметр задан по умолчанию (для каждого типа потоков соответствующий) и его можно опустить:

myFStr.open(filename);

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

if (!myFSTR)         

  {
    //Файл не открылся, паникуем
  }

Еще можно проверить, открылся ли файл, вызвав функцию is_open();

if (!myFSTR.is_open())         

  {
    //Файл не открылся, паникуем
  }

Так типа корректнее.

В общем, после всех этих манипуляций мы получили рабочий файловый поток, открытый как нам надо.

Можем делать с ним все что хочется с помощью операций потокового ввода-вывода (<<  >>)
Типа:

myFStr<<"Тостеры"<<39,95<<endl;         

myFStr<<"Миксеры"<<24,95<<endl;

а потом

char item[20];         

float cost;
myFStr>>item>>cost;         

cout<<item<<" "<<cost<<endl;         

myFStr>>item>>cost;         

cout<<item<<" "<<cost<<endl;

Теперь все это надо закрыть:

myFStr.close();

Вот
Все
Упарился

Каменты: 0  | [+1]

Оставить комментарий



Вы должны авторизоваться чтобы оставлять комментарии.

Вы можете использовать ваш OpenID:

Вы можете использовать HTML-тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>