Mit jelent pontosan ez a hibs? C++
Itt egy kép az consolról:
Itt pedig a forráskód (bocs, de nincs kommentelve):





Amikor i=2040 akkor száll el. A hossz=2042.
Még nézem egy kicsit :/





Legközelebb ha ilyen hibával találkozol, először nézd meg hogy mi dobta és mit jelent.
A console szerint a string erase függvénye dobott egy out_of_range kivételt. Megkeresed google-lel hogy mit jelent ez:
Azt írja: If pos is greater than the string length, an out_of_range exception is thrown.
Tehát az erase függvények az első paramétere nagyobb mint a szöveg hossza, túlindexelsz.
Ilyenkor két dolgot lehet csinálni: ha debuggerrel indítod a programot, az automatikusan elkapja a kivételt és megtudod nézni a változók értékeit. Másik lehetőség hogy te kapod el a kivételét íratod ki a változók értékeit. Kivétel elkapása a try-catch kulcsszavakkal történik, ha követed az out_of_range linkjét ide visz az oldal, ahol példát is mutatnak az elkapására és a kiíratására:
Ha kiírod hogy melyik sorban történt, milyen hosszú a string és mekkora a hossza, mennyi az i és a j változók értéke, stb, akkor elég egyértelműen látszik mi történik és miért. (utolsó sorban vagy egy üres string, a j növelése pedig nem áll le mert az üres stringben nincs szóköz)
Ez csak azért írtam le neked mert rengetegszer fordulhat elő hogy a programot hibát ír és megvannak a módszerek arra hogy hogyan találd meg a hibát, hát használd ki. A hibaüzenet nem azért van hogy megszívasson hanem hogy segítsen, tessék elolvasni és felhasználni az információt.





Ugyan azt az értéket vizsgálod az if feltételekben, de egyszer sem változik ezek közt az értéke így else if lenne a helyes, bár itt már a switch átláthatóbb lenne.
Mutatók használatának ebben a formában pedig értelme nincs, csak a memória szivárog mert egyiket sem törlöd amint már nincs rá szükség.
További kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!