cout<<"Введите а,в,с" <<'\n';
cin>>а>>в>>с;
cout<<"Вы ввели: а="<<a<<" в="<<в<<" c="<<c<<'\n';
В этом фрагменте программы приведены сцепленные операции ввода и вывода.
В следующей программе приведены примеры перегруженных операций для встроенных типов.
#include <iostream.h>
#include <iomanip.h>
void main(0
{
int k;
cout<<"Введите k=" <<'\n';
cin>>k;
long m;
cout<<"Введите m=" <<'\n';
cin>>m;
floatx;
cout<<"Введите x=" <<'\n';
cin>>x;
double y;
cout<<"Введите y=" <<'\n';
cin>>y;
char nch;
cout<<"Введите символ nch =" <<endl;/*endl - т.н. манипулятор. Он помещает в поток символ новой строки (\n) и вызывает манипулятор flush, который принудительно записывает все данные на соответствующие физические устройства. Поэтому endl рекомендуется ставить перед вводом
символа и строки */
cin >> nch;
char name [15];
cout<<"Введите name =" <<endl;
cin >> name;
cout<<"Вы ввели: k="<<k<<" m="<<m<<" x="<<x<<y="<<y<< nch="<<nch<< name ="<< name<<'\n';
}
23.5 Расширение потоков для типов, определяемых пользователем
Можно легко расширить библиотеку, чтобы приспособить операции помещения/извлечения к собственным типам данных. Для этого следует определить две функции со следующими заголовками:
// Чтение данных из потока
istream& operator >> ( istream &is, имя_типа &имя_перем.);
// Запись данных в поток
оstream& operator << ( ostream &os, имя_типа &имя_перем.);
При использовании классов следует операции извлечения и помещения объявлять друзьями данного класса. Это обеспечивает операции доступа к элементам данных.
Пример расширения потоков для объектов class dog.
#include <iostream.h>
#include <iomanip.h>
class dog
{
char*poroda;
char*name;
int nomer;
friend istream &operator>>( istream &is, dog &x.);
friend оstream &operator<<( ostream &os, dog &x.);
};
istream &operator>>( istream &is, dog &x.);
{
poroda=new char[15];
name=new char[10];
cout<<"Введите породу" <<endl;
is>>x.poroda;
cout<<"Введите имя" <<endl;
is>>x.name;
cout<<"Введите номер" <<'\n';
is>>x.nomer;
return is;//Обязательно!
}
оstream&operator<<(ostream&os, dog &x.);
{
os<<"Порода-"<<x.poroda<<" Имя-"<<x. name<<" Номер-"<<x.nomer<<'\n';
return os;//Обязательно!
}
void main()
(
dog q;
cin>>q;
cout<<q;
}
Описан объект q класса dog. При его вводе вызывается дружественная функция operator>>(). В этой функции вместо формальных параметров (ссылок) x и is будут соответственно q и cin. Результат работы функции через returnis присваивается предопределенному объекту класса istreamcin. Аналогично выполняется дружественная функция operator<<().
24.1 Файловый ввод/вывод с применением потоков С++
Библиотека С++ содержит три специализированные класса для файлового ввода/вывода. Это следующие классы:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.