reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

C++: Cyklus ignoruje podmínky

Intri (3490)|26.1.2008 15:54
Zdravím,

od včerejška se snažím přijít na jednu nepochopitelnou záležitost:

do
{
tagName.push_back(line.at(indexOfLine));
indexOfLine++;
}
while(line.at(indexOfLine) != '>' || line.at(indexOfLine) != ' ');

Tento cyklus vesele ignoruje konečné podmínky a běží si do nekonečna. Neví někdo, prosím, čím to je? tagName a line jsou stringy ( ne char*, nicméně s char* to taky nefunguje ), index je int. Zápis znaků do tagName funguje správně, mezera se z line přečte, ale program na podmínku v cyklu prostě nezareaguje a místo ukončení cyklu pokračuje a šťastně si cyklí dál.

tagName je lokální proměnná funkce, line je parametr té funkce.
pavel_p (993)|26.1.2008 17:52
Zrovna jsem spal a su nějak nepoužitelnej, ale:
|| -> &&
Jak to máš budou platit většinou obě podmínky a vždy aspoň jedna, takže cyklus nikdy neskončí.
Intri (3490)|26.1.2008 17:59
Ty v..e... No fakt že jo. A to jsem si říkal, jestli tam ty && nepatří, několikrát, ale pořád jsem si říkal, že je to kravina. No jo, taky jsem to mohl zkusit, že... Můj problém. Ok, díky moc. Jsem věděl, že to bude kravina.