Witam, mam problem przy korzystaniu z przeciążenia operatora >> dla strumienia fstream. Zdefiniowałem przeładowanie następująco:
istream & operator >> (istream & StrmWej, LZespolona & lz){
StrmWej>>lz.re>>lz.im;
if(StrmWej.fail()){
cout << "*** Blednie wprowadzona liczba:" << endl;
cout << "*** Blad zapisu liczby." << endl << endl;
StrmWej.setstate(ios::failbit);
return StrmWej;
}
if(StrmWej.peek()!=('i')){
cout << "*** Blednie wprowadzona liczba:" << endl;
cout << "*** Brak 'i'." << endl << endl;
StrmWej.setstate(ios::failbit);
return StrmWej;
}
StrmWej.ignore();
return StrmWej;
}
Przy czytaniu liczb zespolonych z cin działa bez zarzutu - natomiast gdy chcę to samo wczytać z pliku zawsze dostaje fail dla strumienia. Czy da się w jakiś sposób sprawić żeby fstream zachowywał się tak samo jak istream?