cin.fail ?

0

Witam
Kod tej czesci programu wczytuje 9 liczb z klawiatury i chce zrobic opcje ze gdy nie zostanie wpisane 9 liczb np wiecej badz mniej wyskoczy komunikat. Myslalem zeby uzyc cin.fail() ale chyba nie dokonca i nie dokonca wiem jak

// przeciazenie operatora ()
float Macierz::operator() (int x, int y) const
{
   if ((x<0 || y<0) || (x>=3 || y>=3)) 
   {
   cerr<<"Zle indeksy, prawidlowe indeksy sa z zakresu <0,2>";
   exit(1);
   }    
   else {return Tab[x][y];}
}


float & Macierz::operator() (int x, int y)
{
   if ((x<0 || y<0) || (x>=3 || y>=3)) 
  {
   cerr<<"Zle indeksy, prawidlowe indeksy sa z zakresu <0,2>";
   exit(1);
   }    
   else {return Tab[x][y];}
}


// przeciazenia operatora wejscia dla macierzy wspolczynnikow
istream& operator >> (istream& StrmWej, Macierz& Macierz)
{
     int i; //licznik wierszy
     int j; //licznik kolumn          
     cout
          <<" Wpisz wspolczynniki ukladu rownan"<<endl
          <<" Nalezy podac macierz 3x3"<<endl
          <<"np."<<endl
          <<"   a11  a12  a13"<<endl
          <<"   a21  a22  a23"<<endl
          <<"   a31  a32  a33"<<endl;
        
     
     for(i=0;i<3; i++)
       for(j=0;j<3 ;j++)
         StrmWej>>Macierz(i,j);     
         
}
0
string line;
int v;

getline(StrmWej,line);

istringstream iss(line);

for(int i = 0; i < 3; ++i)
	for(int j = 0; j < 3; ++j)
		if(!(iss >> Macierz(i,j))) i = j = 3;

if(iss.fail())cout << "za malo\n";
else if(iss >> v)cout << "za duzo\n";

1 użytkowników online, w tym zalogowanych: 0, gości: 1