Mi a hiba ebben a C++ kódrészletben? [szövegfile olvasás, nagyon amatőr probléma]
Figyelt kérdés
Azt szeretném megoldani, hogy végigolvassa a filet karakterenként, és ha 'e' karaktert olvas be, utána egész számként olvasson a fileból int u, illetve int v változókba.
A szövegfile szerkezete valami ilyesmi:
c barmi
p barmi
c barmi akarmi mindegy
e 2 5
e 20 33
e 11 53
...
ifstrem fin("file.txt");
char c;
int u,v;
while (!fin.eof())
{
fin>>c;
cout<<c;
if (c=='e')
{
fin>>u;
fin>>v;
cout<<u<<", "<<v<<endl;
}
}
2014. márc. 21. 10:55
2/4 A kérdező kommentje:
Pont ez az, hogy nem tudom :D
De valami miatt végtelen ciklusra jut, nem fut tovább, ha 'e' karaktert talál. (Ha kiveszem a karaktervizsgálatot, értelemszerűen szépen működik.)
2014. márc. 21. 11:06
3/4 anonim válasza:
"c barmi akarmi mindegy"
Mondjuk ebben a sorban nem csoda ha elszáll.
Kicsit jobban át kéne gondolni ezt.
4/4 iostream válasza:
Azért száll el, mert a mindegy-ben van egy e-betű. Beolvassa azt, és utána próbál egy intet olvasni, ami nem fog menni neki (hiszen utána a string úgy kezdődik, hogy "gy..."). Ezzel a stream bad állapotba kerül (viszont nem eof), és kész is a végtelen ciklus.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!