Язык С++ и программирование на нем. Рейзлин В.И. - 186 стр.

UptoLike

Составители: 

188
void main(){ Date date;
cout << ”Пожалуйста, введите дату (день, месяц, год)\n”;
cin >> date;
cout << date << '\n';
}
Приведем еще один пример, демонстрирующий перегрузку опе-
раций извлечения и вставки в поток, на этот раз для структуры:
struct info {
char *name;
double val;
char *units;
info(){
val=0;
name = new char [30];
units = new char [30];
name[0]=units[0]=0;
}};
ostream& operator << (ostream& s, info &m){ // Вывод info в s
s << m.name <<”<<m.val <<” ”<< m.units<<”\n”;
return s;}
Oперация >> может быть перегружена следующим образом:
istream& operator >> (istream& s, info &m){ // Ввод в info
s.width(30); s >> m.name;
char c;
while((c = s.get())!= ‘ ‘ && c!=‘\t’ && c!=‘\n’);
s.putback(c);
s.width(30);
s >> m.val;
s.width(30);
s >> m.units;
return s;
}
Для считывания строки ввода, такой как Resistance 300 Ohm,
можно использовать следующую запись:
void main(){
clrscr();
info m;
cout<<”Введите наименование величины, ее значение \n”;