Класс fstream в С++

Для работы с файлами в С++ очень часто используется класс fstream. В этом классе реализованы функции открытия и закрытия файла, а также члены класса, которые позволяют позиционировать указатель (место где мы находимся). Существуют разные способы открытия файла, которые задаются перечислимой переменной open_mode.

Открытие файла при помощи fstream

  1. app — открыть файл для до записи в конец;
  2. binary — открыть файл в бинарном виде;
  3. in — открыть файл для чтения;
  4. out — открыть файл для записи с начала. Если файл не существует, то он будет создан новый файл;
  5. trunc — очистить файл от содержимого;
  6. ate — указатель позиции в файле установить в конец.

Все выше указанные переменные являются членами базового класса ios. Поэтому следует указывать полный путь: ios::in , ios::out и так далее.

Функции fstream

  1. open() — открывает файл;
  2. is_open() — проверка открытия файла. Если открыт, то функция вернет TRUE иначе FALSE;
  3. rdbuf() — выдает указатель на буфер ввода/вывода;
  4. getline(param1,param2) — прочитать строку из файла в переменную param1, длинной param2;
  5. close() — закрыть файл.

Открытие файла функцией open() осуществяется с параметрами. Например: FILE.open(«myfile.txt», ios_base::in); или FILE.open(«myfile.txt», ios_base::in | ios_base::out);

Пример использования класса fstream в С++:
[code]
#include<iostream>
#include<fstream>
#include<locale>

using namespace std;

int main()
{
setlocale(LC_ALL,"Russian");
fstream FILE;

//блок записи в файл
FILE.open("myfile.txt", ios_base::out);
FILE<<"Первая строка"<<endl;
FILE<<"Вторая строка"<<endl;
FILE<<"Третья строка";
FILE.close();//

//блок чтения из файла по строчно
FILE.open("myfile.txt", ios_base::in);
char str[50];
FILE.getline(str,50);
cout<<endl<<"String 1: "<<str;
FILE.getline(str,50);
cout<<endl<<"String 2: "<<str;
FILE.getline(str,50);
cout<<endl<<"String 3: "<<str;
FILE.close();//

//блок чтения из файла всего содержимого
FILE.open("myfile.txt", ios_base::in);
cout<<endl<<FILE.rdbuf()<<endl;
FILE.close();//

//блок чтения из файла по строчно в цикле
FILE.open("myfile.txt", ios_base::in);
while (!FILE.eof())
{
FILE.getline(str,50);
cout<<str<<endl;
}
FILE.close();//

system("pause");
}
[/code]

1 Star2 Stars3 Stars4 Stars5 Stars (3 голосов, средний:5,00 из 5)
Вы можете пропустить чтение записи и оставить комментарий. Размещение ссылок запрещено.
Оставить комментарий