Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ofstream s1;
- ofstream s2("f2.aaa");
- fstream s3;
- fstream s4("f4.aaa", ios::in | ios::out);
- s1.open("f1.aaa");
- s3.open("f3.aaa", ios::in | ios::out);
- int a = 25;
- float b = -7.41;
- char c[80] = "Hi!";
- s1 << " " << a*4 << " " << b; // 100 -7.41(f1.aaa)
- s3 << " " << c << " " << "my_dear" ; // Hi! my_dear(f3.aaa)
- Если открыть любой поток любым способом, файловый курсор устанавливается на начало потока.
- Если с помощью ofstream открыть файл, содержащий информацию, информация будет уничтожена.
- Если с помощью ofstream открыть несуществующий файл, он будет создан.
- Когда работа с потоком закончена, его нужно закрыть с помощью метода close.
- s1.close(); s2.close(); s3.close(); s4.close();
- ifstream s1; //Err, s1 уже определен как ofsteam
- ifstream s5("f1.aaa");
- К одному и тому же файлу можно привязать сколько угодно файловых потоков(файловых переменных)
- s5 >> a; cout << a; //100
- s3.open("f1.aaa", ios::in | ios::out);
- s3 >> a; cout << a; //100, новый поток, файловый курсор в начале потока
- s3 << " " << "Привет"; // 100 Привет
- s2.open("f3.aaa"); //Данные в f3 удалятся
- Методы для определения положения файлового курсора.
- поток.tellp(); //ofstream, fstream
- поток.tellg(); //ifstream, fstream
- Перемещение файлового курсора можно осуществить с помощью методов группы seek.
- поток.seekp(a,b);//ofstream, fstream
- поток.seekg(a,b);//ifstream, fstream
- a - целое число, показывает смещение позиции b;
- b - одна из символических констант(ios::beg - начало файла, ios::end - конец файла, ios::cur - текущая позиция)
- s3.seekp(0, ios::beg);//Перемещение в начало.
- поток.eof(); 0 - false, not 0 - true;
- while(поток.eof()!= 0)
- {
- поток >> (<<);
- }
- Иногда бывает нужно для продолжения работы с файловым потоком его реанимировать.
- поток.clear(0);
- Пример:
- (из прошлой лекции)
- Разработка класса СОБАКА
- class TDog
- {
- friend class TFile;
- private:
- char klichka[20];
- int god_rojdeniya;
- float OC[N];
- public:
- ..........
- Перегрузка:
- cin>>x; cout<<x;
- Поток операция объект.
- friend istream& operator >> (istream& is, TDog& d);
- friend ostream& operator << (ostream& os, TDog& d);
- На выводе измененный поток.
- };
- Реализация:
- istream& operator>>(istream& is, TDog& d)
- {
- is>>d.kilchka;
- is>>d.god_rojdeniya;
- for(int i=0; i<N; i++)
- {
- is>>d.OC[i];
- }
- return is;
- }
- ostream& operator<<(ostream& os, TDog& d)
- {
- os << " " << d.klichka << " " << d.god_rojdeniya;
- for(int i=0; i<N; i++)
- {
- os << " " << d.OC[i];
- }
- return os;
- }
- void main()
- {
- TDog sobaka;
- cout << "Вв. кличку, год и 5 оценок" ;
- cin >> sobaka;
- .........
- cout << "Информация о собаке";
- cout << sobaka;
- }
- class TFile
- {
- char fn[80]; //Имя файла
- TDog xddd;
- public:
- TFile(); //Конструктор
- void fcreate();
- void fread();
- void add_rec();
- void XDobrabotka(); //обработка
- };
- TFile::TFile()
- {
- strcpy (fn, "MyDogs.aaa");
- }
- void TFile::fcreate()
- {
- ofstream xd(fn);
- cout << "Введи информацию о СОБАКЕ" << endl;
- //В классе TDog предусмотреть метод - подсказку для ввода данных о СОБАКЕ.
- cin >> xddd;
- xd << xddd;
- xd.close();
- }
- void TFile::fread()
- {
- ifstream xd(fn);
- //Вывод шапки таблицы, в ЛР добавить в класс TDog метод выводящий шапку таблицы.
- while(!xd.eof())
- {
- xd >> xddd;
- cout << xddd;//При таком выводе данные отобразятся на экране НЕКРАСИВА(предусмотреть в классе TDog метод для форматированного вывода данных о СОБАКЕ)
- }
- xd.close();
- }
- void TFile::add_rec()
- {
- fstream xd(fn, ios::in | ios::out);
- xd.seekg(0, ios::end);
- cout << "Введи информацию о СОБАКЕ" << endl;
- cin >> xddd;
- xd << xddd;
- s.close();
- }
- Вывести информацию обо всех собаках, родившихся после 2015 года
- void TFile::XDobrabotka()
- {
- int flag = 0;
- ifstream xd(fn);
- //Вывод шапки таблицы, в ЛР добавить в класс TDog метод выводящий шапку таблицы.
- while(!xd.eof())
- {
- xd >> xddd;
- if(xddd.god_rojdeniya > 2015)
- {
- cout << xddd;
- //использовать метод форматирования
- flag = 1;
- }
- if (!flag) cout << "Таких СОБАК нет" << endl;
- xd.close();
- }
- void main()
- {
- int i; //Пожелание пользователя
- Создать объект TFile;
- do
- {
- меню
- cin>>i;
- switch case
- }while(i!=0);
- (1-4 методы, все не 0 - дефолт, 0 - выход)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement