3.4. Файлы.
В С++ отсутствуют встроенные средства ввода / вывода данных. Взамен им в Borland C++ версий 2.0 и выше используется библиотека классов. Для использования этих библиотек, как отмечалось выше, необходимо включить в программу соответствующие заголовочные файлы. Иерархия классов ввода / вывода может быть представлена следующим рисунком:
ios
istream
ostream
ifstream iostream ofstream
fstream
где: ios- базовый класс (ввода/вывода); iostream - класс потокового ввода; ostream - класс потокового вывода; iostream- класс потокового ввода/вывода; ifstream - класс ввода файлов; ofstream- класс вывода файлов; fstream - класс ввода/вывода файлов;
Каждый класс имеет свои функции члены, использование которых в программе требует подключение соответствующих заголовочных файлов.
При использовании библиотеки классов С++ операции открытия, создания и закрытия, выполняются при создании объектов выходного (входного ) файлового потока. Например:
#include <iostream.h>
#include <fstream.h> // ofstream
#include <stdlib.h> // содержит функцию exit
int main()
{ char sim;
// создаётся файл, старый стирается
ofstream myfile("d:\oop\myfile.txt",ios::out);
if(!myfile)
{
cerr<<" ошибка открытия myfile.txt"<<endl;
exit(1);
}
for(int i=1;i<10;i++){
cout<<"введите символ"<<endl;
cin>>sim;
myfile.put(sim); }
myfile<<endl;
return 0;
}
#include <iostream.h>
//#include <fstream.h> // ofstream
#include <fstream.h>
#include <stdlib.h> // содержит функцию exit
int main()
{ char sim;
ifstream myfile("d:\oop\myfile.txt",ios::in);
if(!myfile)
{
cerr<<" ошибка открытия myfile.txt"<<endl;
exit(1);
}
int nsim=0, kolstr=0;
while (myfile.get(sim)){
if (sim==char("\n"))
kolstr++;
else
nsim++;
cout.put(sim); }
cout<<endl<<endl<<"kolstr="<<kolstr<<" "<<"nsim="<<nsim<<endl;
cin>>nsim;
return 0;
}
#include <iostream.h>
#include <fstream.h> // ofstream
#include <stdlib.h> // содержит функцию exit
int main()
{ char sim;
ofstream myfile("d:\oop\myfile.txt",ios::in); // открывается
// файл для чтения
if(!myfile)
{
cerr<<" ошибка открытия myfile.txt"<<endl;
exit(1);
}
for(int i=1;i<10;i++){........................}
cout<<"введите символ"<<endl;
cin>>sim;
myfile.put(sim); }
myfile<<endl;
return 0;
}
#include <iostream.h>
#include <fstream.h> // ofstream
#include <stdlib.h> // содержит функцию exit
#define size 40
int main()
{ char sim,*filename;
cout<<"введите имя файла и путь d:\oop\myfile.txt \n";
filename=new char(size);
cin.getline(filename,size);
ofstream myfile(filename,ios::out);
if(!myfile)
{
cerr<<" ошибка открытия myfile.txt"<<endl;
cin>>sim;
exit(1);
}
for(int i=1;i<10;i++){. . . . . . . . . . }
cout<<"введите символ"<<endl;
cin>>sim;
myfile.put(sim); }
myfile<<endl;
delete[]filename;
return 0;
}
