Тема: перевантажений оператор вводу-виводу
Створити клас computer, який містить елементи: processor (тип char), price (тип int), memory (тип int). Скласти програму, яка використовує перевантажений оператор вводу-виводу і виводить на екран елементи класу у форматі
Intel - 5242 grn., 256 K
проблема от в чому: треба передбачити помилку користувача, якщо замість типу int в price, користувач введе стрічку, потрібно аби вибила помилка. в мене зроблено через for і відповідно воно працює не правильно....можливо варто зробити через try catch (та, на жаль, не можу розібратися в цьому)
#include<iostream.h>
#include<conio.h>
class computer
{ char processor[30];
int price;
int memory;
public:
friend ostream & operator <<(ostream & stream,computer obj);
friend istream & operator >>(istream & stream,computer & obj);
};
istream & operator >>(istream & stream,computer & obj)
{
cout<<"Vvedit processor, ciny i pamjat: \n"<< endl;
stream >> obj.processor;
stream>> obj.price;
cout<<obj.price;
if (obj.price == 1702057308)
{
cout<<"pomulka,ne pravulno vvedena cina, bud' laska, zavershit programy ta pochnit' znovy \n" <<endl;
}
stream>> obj.memory;
cout<<endl;
return stream;
}
ostream & operator <<(ostream & stream,computer obj)
{
stream << obj.processor <<" - "<< obj.price <<" grn.,"<< obj.memory <<"K"<<endl;
return stream;
}
int main()
{
int n = 1;
computer *mashuna= new computer[n];
for(int i=0;i<n;++i)
{
cout<<" Vvedit "<<i+1<<" computer"<<endl;
cin>>mashuna[i];
}
cout<<"__________________________________"<<endl;
for(int i=0;i<n;++i)
{cout<<mashuna[i];}
delete [] mashuna;
getch();
return 0;
}