Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
| Autor | Správa |
|---|
Registrovaný: 04.08.08 Prihlásený: 28.10.11 Príspevky: 152 Témy: 42 | 42 |
Caute, ako funguje obejkt cin, cital som, ze automaticky pretypuje vstup podla toho do akej premennej ukladam, ale nie je mi to velmi jasne, pretoze mal som prem. typu int, ulozil som do nej zo vstupu znak A, a ked som dal vypisat prem. pomocou cout, tak vypisalo mi to velke cislo, nemalo to vypisat 65 ?
|
|
Registrovaný: 08.03.09 Prihlásený: 17.01.25 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 | Napísal reDo: 25.06.2009 18:35 | cin | |
|
nwm preco robis veci ktore su na nic platne rob chytre veci ved sa neucis programovat na to aby si kazil komp a nudil sa
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 04.08.08 Prihlásený: 28.10.11 Príspevky: 152 Témy: 42 | 42 |
este ze ty si taky chytry 
|
|
Registrovaný: 08.03.09 Prihlásený: 17.01.25 Príspevky: 1116 Témy: 88 | 88 Bydlisko: 00100100 | Napísal reDo: 25.06.2009 19:20 | cin | |
|
boze no tak naco ti to bude dobre radsej sa uc programovat normalne sparvne ako skusat co ktora funkcia/objekt urobi ked zadam neco zle 
_________________ Programming is The Best
Hackers Are Not Crackers!!! Hackers build things, crackers break them!
;-) |
|
Registrovaný: 11.01.09 Prihlásený: 28.04.26 Príspevky: 1399 Témy: 10 | 10 Bydlisko: Hrinova | Napísal Fico: 25.06.2009 19:30 | cin | |
|
beginner píše: cital som, ze automaticky pretypuje vstup podla toho do akej premennej ukladam
Mne sa zdá, že to je myslené tak, že nemusíš určovať dátový typ, ktorý sa má pomocou std::cin prečítať. Prečítaj si tento článok.
(To veľké číslo nemá súvis s načítaním. Neinicializovaná premenná má po spustení programu náhodnú hodnotu. Keď premennú deklaruješ ako int i = 0;, tak po načítaní znaku (nie čísla) bude mať hodnotu 0).
|
|
Registrovaný: 30.04.08 Prihlásený: 03.12.25 Príspevky: 884 Témy: 3 | 3 |
Hej, to velke cislo je hodnota, ktora tam je ulozena v pamati v tej premennej, a kedze tato premenna je typu int a 'A' je znak, tak sa do premennej neulozi nic.
_________________ Empty your memory, with a free()… like a pointer! If you cast a pointer to an integer, it becomes the integer, if you cast a pointer to a struct, it becomes the struct… The pointer can crash…, and can overflow… Be a pointer my friend… |
|
Registrovaný: 04.08.08 Prihlásený: 28.10.11 Príspevky: 152 Témy: 42 | 42 |
nova otazka... cin po potvredni vstupu enterom, nechava znak noveho riadku, cize \n v bufferi, preco ked zavolam cin 2x po sebe, tak druhy cin stale caka na vstup, nemalo by tam dosadit \n z bufferu ?
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 | 35 Bydlisko: BA - WESTSIDE |
cin pri použití s operátorom >> ignoruje "prázdne" znaky (nové riadky, medzery, tabulátory a pod). Ak chceš aj tieto znaky, použi cin.get()
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 04.08.08 Prihlásený: 28.10.11 Príspevky: 152 Témy: 42 | 42 |
dik, a este sa chcem spytat, ze ked nacitavam znaky do pola cez cin.get() tak ono to vraj neuklada \0 na konci vstupu, a potom ked dam vypisat pole cez cout, ako to, ze ho vypise spravne, ked tam nie je \0, tak by nemal vediet, kde je pole ukoncene.
|
|
Registrovaný: 11.01.09 Prihlásený: 28.04.26 Príspevky: 1399 Témy: 10 | 10 Bydlisko: Hrinova | Napísal Fico: 26.06.2009 12:59 | cin | |
|
get() ukladá na koniec reťazca nulový znak - musí, pretože potom by nebolo jasné, kde reťazec končí (nulový znak nie je "vidieť", on iba signalizuje, kde sa končí reťazec. Nezarátava sa ani do dĺžky reťazca). Ak si to chceš overiť, daj si vypísať binárne hodnoty na adresách jednotlivých znakov:
Kód: cin.get(meno, 6); // načíta 5 znakov a šiesty je "rezervovaný" pre '\0'
for (int i = 0; i < 6; i++) printf("%d ", meno[i]);
|
|
Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
|