V prilozenom screenshote je vsetko popisane :)
Fórum › C / C++
C++ I-lekcia 3-Divne chovanie programu
V poli c ti chybí znak '/0' - cin nezná velikost pole, ty předáváš pouze začátek a cin jede až po znak '/0' - tzn vypisuje to i za hranici pole věci, které zůstaly v paměti. Zastaví se to až, když je v paměti znak '/0'
Doporučuju místo polí používat string - potom už se ti toto nestane.
Dakujem ale jak to tam mam zadat? :) Moje pokusy mali 0ovy vysledok-ja som sa ho tam zadat snazil uz predtym... :) Len nakoniec som zacal dufat ze ono to tam prida same x)
Porad-som lama-z C++ len zacinam :)
A este... ked to dam cez string-nevyzaduje to ten znak nikdy? Lebo taky Pascal to nechce nikdy-aspon myslim :)
char c[6];
for (int x = 0; x < 5; ++x)
cin >> c;
c[5] = '\0';
cout << c;
> Lebo taky Pascal to nechce nikdy-aspon myslim :)
Ale zasa vyžaduje počet znakov v reťazci pred samotným reťazcom a čo je horšie, dĺžka reťazca je obmedzená len na 255 znakov.
To T4x!kaR : Pokud použiješ std::string tak \0 nemusíš řešit, jinak v tomhle případě by mělo stačit změnit
char c[5];
na
char c[6];
a jak tam máš cyklus tak za něj dát
c[5] = '\0';
jinak místo 5 > x se píše x < 5, je to přehlednější :)
mephi napsal:
ja už len dodam, že ja by som volil pre pole c typ int ;)
int c[6]; keď su to čisla tak nech su aj tak uložene v pamati.
a ja dodam-precitaj si nadpis :) robim ulohu n.3 z toho kurzu C++... tam to ma byt cez char :) je mi jasne ze int je na cisla lepsi :)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Divne chovanie String matches — založil tomiik
G++ - divne chovani — založil Koudis
Divné chování if-else — založil d.mostek
Fmod.. divne chovani?? — založil cp.Hook
CSS divne posunutie — založil Systém
Moderátoři diskuze