понедельник, 13 июня 2011 г.

C++. Урок 7. Чтение и запись в файл

Пора наконец-то научится работать с файлами в с++: читать в них, писать в них и изменятять их.
Запись в файл и чтение из него в c++ почти ничем не отличаются от стандартного ввода и вывода. Вам всего лишь вместо cin и cout надо будет указать "файл", из которого вы читаете. Т
Запись в файла:
Для работы программы надо подключить header-файл fstream:
#include <fstream>
Теперь надо открыть файл:
ofstream out;
out.("file.type");

Я этого обычно не делаю, но по хорошему надо:
if (in==NULL) return 0; // если не смогли открыть файл, какая-либо ошибка
Теперь для записи вывода в файл достаточно писать вместо cout идентификатор out
in<<"this string was wrote to file by c++;)"<<endl;
Немного дополнительных функций:
  • is_open() - проверят, открыт ли файл. Если открыт возвращает 1 иначе 0 (true or false)
  • skeek(kuda) - перемещает позицию с которой мы будем писать.
  • tellp() -  выдает позицию, в которой мы находимся
  • close() - закрывает файл
Чтение из файла:
Почти ничем не отличается. Только вместо ofstream пишем ifstream и для ввода используем оператор  >>
ifstream somefile;
somefile.("file.txt");
string s;

somefile>>s;
Немного дополнительных функций:
Для использования писать имя_файла. функция
  • is_open() - проверят, открыт ли файл. Если открыт возвращает 1 иначе 0 (true or false)
  • eof() - возвращает true если дошли до конца файла
  • seekg(kuda) - перемещает позицию с которой мы считаем в заданное место.
  • tellg() -  выдает позицию, в которой мы находимся
  • close() - закрывает файл
Запись и чтение из файла:
Для этого вам надо создать экземпляр класса fstream:
fstream file;
file.open(file,"параметры через |");
и можно будет и читать и писать в файл. Немного подробнее про параметры:
  • ios::in - открыть файл для чтения
  • ios::out - открыть для записи с начала файл
  • ios::app - открыть для дозаписи в конец файла
  • ios::ate - установить указатель (где мы щас находимся в файле) в конец файла
  • ios::thrunc - очистить файл если он существует
  • ios::binary - открыть файл в бинарном формате (типа exe,dll,o и т.д, не думаю, что вам в ближайшем будущем понадобится)
А дальше все просто. Для вывода в файл пишем file<<chto_vivesti и для чтения file>>

3 комментария:

  1. ofstream out;

    ....

    if (in==NULL) return 0; // если не смогли открыть файл, какая-либо ошибка
    Теперь для записи вывода в файл достаточно писать вместо cout идентификатор in

    -----------

    Исправь in на out.

    ОтветитьУдалить
  2. skeek(kuda) - может все ж SEEK?

    ОтветитьУдалить