Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Работа с классом fstream

Читайте также:
  1. g. Если работает на табачном проекте, в первую очередь спрашиваем, курит ли человек
  2. I. Историческая работа сообразно её материалам
  3. II. Групповая работа
  4. II. Историческая работа сообразно её формам 1 страница
  5. II. Историческая работа сообразно её формам 2 страница
  6. II. Историческая работа сообразно её формам 3 страница
  7. II. Историческая работа сообразно её формам 4 страница

Члены этого класса позволяют открыть файл, записать в него данные, переместить указатель позиционирования (указатель, показывающий, в каком месте файла мы находимся), прочитать данные. Этот класс имеет такие основные функции (методы):

¨ open() — открывает файл;

¨ close() —закрывает файл;

¨ is_open() — если файл открыт, то функция возвращает true, иначе - false;

¨ rdbuf() — выдает указатель на буфер ввода/вывода.

Параметры функции open():

¨ имя открываемого файла;

¨ способ открытия файла.

Способ открытия файла задается значением перечислимой переменной:

enum open_mode {app, binary, in, out, trunc, ate};

Эта переменная определена в базовом классе ios, поэтому обращение к перечислимым значениям в классе fstream, с экземпляром которого мы работаем, должно идти с указанием класса-родителя: ios:: арр, ios:: binary и т. д.

Назначение способов открытия файла:

¨ арр — открыть файл для дозаписи в его конец;

¨ binary — открыть файл в бинарном виде (такие файлы были записаны по определенной структуре данных и поэтому должны читаться по этой же структуре);

¨ in — открыть файл для чтения из него;

¨ out — открыть файл для записи в него. Если файл не существует, он будет создан;

¨ trunc — уничтожить содержимое файла, если файл существует (очистить файл);

¨ ate — установить указатель позиционирования файла на его конец.

При задании режимов открытия файла можно применять оператор логического или (|), чтобы составлять необходимое сочетание режимов открытия.

В листинге 9.10 приведен пример программы работы с классом fstream, результат работы показан на рис. 9.8.

Листинг 9.10

// З8.срр: Defines the entry point for the console application.

#include "stdafx.h"

#include < fstream>

#include <iostream>

#include <conio.h>

#include <stdio.h>

void _tmain()

{

using namespace std;

/*Используется стандартное пространство имен. Создание двунаправленного (чтение/запись в одном и том же файле) объекта (экземпляра)*/

fstream inout;

inout.open("fstream.out", ios_base::in | ios_base::out | ios_base::trunc);

//вывод в файл

inout << "This is the story1 of a man" << endl;

inout << "This is the story2 of a man" << endl;

inout << "This is the story3 of a man" << endl;

char p[100];

//установка указателя файла (позиционирование) в его начало

inout.seekg(0);

//чтение 1-й строки (длиной не более 100 символов)

inout.getline(p,100);

//вывод 1-й строки на экран (stdout)

cout << endl << "Stringl:" << endl;

cout << p;

//запоминание текущей позиции в файле после 1-го вывода

fstream::pos_type pos = inout.tellg();

//чтение 2-й строки из файла

inout.getline(p,100);

//вывод 2-й строки на экран (stdout)

cout << endl << "String2:" << endl;

cout << p;

//чтение 3-й строки из файла

inout.getline(p,100);

//вывод 3-й строки на экран (stdout)

cout << endl << "String3:" << endl;

cout << p;

//установка указателя перед 2-й строкой inout.seekp(pos);

//запись на место 2-й строки

inout << "This is the story2 of a man" << endl;

//запись на место 3-й строки

inout << "This is the story3 of a man" << endl;

//установка на начало файла

inout. seekg (0);

//вывод всего содержимого потока на экран (stdout)

cout << endl << endl < inout. rdbuf();

inout.close();

system ("DEL FSTREAM.OUT");

_getch();

}

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

Рис. 9.8. Результаты работы программы листинга 9.10


Дата добавления: 2015-07-26; просмотров: 103 | Нарушение авторских прав


Читайте в этой же книге: Функции стандартного ввода/вывода | Примечание | Работа с бинарным файлом | Примечание |
<== предыдущая страница | следующая страница ==>
Пространства имен| Работа с классом ifstream

mybiblioteka.su - 2015-2024 год. (0.006 сек.)