четверг, 25 декабря 2008 г.

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

Женщины лучше всего одеваются в тех краях, где они часто раздеваются.

Бородка благостна, да душа пакостна.

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

Кстати сказать, вообще говоря любая работа с файлами подразумевает исчерпание потоков. И вообще, потоками реализован весь ввод-выход в 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();

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




Тимати в стороне

Преимущества

Сколько нужно мужику денег в месяц, чтобы питаться в приморье!

Комментариев нет: