To jeszcze raz.
Problem jest z prywatnymi polami klasy a,b,c,d,e. Kiedy wybieram opcję 3 z menu (wprowadzanie danych na temat komputera) do pola "a" nie mogę wprowadzić typu procesora ze spacją np.(intel pentium) wtedy program się zapętla.
Problem jest również z polem "e", ale tam nie można wpisywać nic oprócz cyfr, po wpisaniu liter i zaakceptowaniu enterem program się zapętla.
Jeśli wpisze w pole "a" łańcuch tekstowy bez spacji, a w polu "e" liczbe to program działa.
Proszę o pomoc. Co zrobić, żeby do pola klasy "a" można było wprowadzać tekst ze spacją i jak rozwiązać problem z polem "e"?
#include <cstdlib>
#include <iostream>
using namespace std;
class komputer
{
private:
string a;
float b;
int c;
int d;
string e;
public:
void on_off();
void pokaz();
void konfig();
void koniec();
};
int main(int argc, char *argv[])
{
komputer x;
int m;
printf("=====MENU===== \n");
printf("1.Wlancz / wylancz \n");
printf("2.Wyswietl \n");
printf("3.Konfiguruj \n");
printf("4.KONIEC \n");
do
{
printf("Wybierz jedna z opcji: ");
scanf("%i",&m);
switch(m)
{
case 1:
x.on_off();
break;
case 2:
x.pokaz();
break;
case 3:
x.konfig();
break;
case 4:
x.koniec();
break;
default:
break;
}
}
while(m<4);
}
void komputer::on_off()
{
cout<<"Komputer jest aktualnie: " <<e<<endl;
}
void komputer::pokaz()
{
cout<<"Dane na temat komputera: "<<endl;
cout<<"Typ procesora: "<<a<<endl;
printf("Zegar procesora %.2f \n: ",b);
cout<<"Ilosc RAM: "<<c<<endl;
cout<<"Pojemnosc dysku: "<<d<<endl;
cout<<"Status komputera: "<<e<<endl;
}
void komputer::konfig()
{
cout<<"Wprowadz dane: "<<endl;
cout<<"Podaj typ procesora: "<<endl;
cin>>a;
cout<<"Podaj zegar procesora: "<<endl;
cin>>b;
cout<<"Podaj ilosc RAM: "<<endl;
cin>>c;
cout<<"Podaj rozmiar dysku: "<<endl;
cin>>d;
cout<<"Podaj status komputera: "<<endl;
cin>>e;
}
void komputer::koniec()
{
}