Информатика и технология программирования


Файловые потоки


Классы файловых потоков :


ifstream - файл ввода, производный от istream
ofstream - файл вывода, производный от ostream
fstream - файл ввода-вывода, производный от iostream

Флаги режимов работы с файлом :


enum ios::open_mode
{
in = 0x01, // Открыть файл только для чтения


out = 0x02, // Открыть файл только для записи


ate = 0x04, // При открытии позиционироваться в конец файла


app = 0x08, // Открыть существующий для дополнения


trunc = 0x10, // Создание нового файла взамен существующего


nocreate=0x20, // Не создавать новый файл при его отсутствии


noreplace=0x40, // Не создавать новый файл, если он существует


binary= 0x80 // Двоичный файл ("прозрачный" ввод-вывод без


// преобразования символов конца строки)


};


Конструкторы объектов (для классов ifstream,ofstream,fstream) и функции открытия/закрытия файлов :


ifstream(); // Без открытия файлов


ifstream( // С открытием файла в заданном


char *name, // режиме imode


int imode=ios::in,
int prot=filebuf::openprot);


ifstream(int fd); // С присоединенем файла с дескрип-


// тором fd



ifstream( // То же, с явно заданным буфером


int fd,
char *buf, int sz);


void ifstream::open(
char *name, // Открытие файла в заданном режиме


int imode=ios::in,
int prot=filebuf::openprot);


void close(); // Закрыть файл


void setbuf(
char *p,int sz); // Установить буфер потока


int fd(); // Дескриптор открытого в потоке файла


int is_rtl_open(); // 1 - файл открыт в потоке


Унаследованные переопределения операторов позволяют проверять наличие ошибок в потоках в виде :


fstream ss;


if (ss) ... или if (!ss) ...


Функции ввода-вывода данных файловых потоков (унаследованы из istream,ostream и iostream) :


// Чтение указанного количества символов (байтов)


// из потока в буфер


istream&#38 read( char *p, int n);
istream&#38 read( signed char *p, int n);
istream&#38 read( unsigned char *p, int n);


// Запись указанного количества символов (байтов)


// из буфера в поток


ostream&#38 write( char *p, int n);



Начало  Назад  Вперед