Programovacie jazyky, rady, poradňa...
peto1310
Light Expert
Príspevky: 37 Registrovaný: 21 jún 2006, 17:20
Príspevok
od používateľa peto1310 » 10 apr 2009, 14:25
Caute, preco mi nasledujuci skript vyhodi take divoke cislo ? (napr. ked napisem znak a), ale ked funkciu scanf nahradim funkciu getchar tak to funguje, mozete mi to vysvetlit ?
dik
audiotrack
VIP
Príspevky: 25958 Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:
Príspevok
od používateľa audiotrack » 10 apr 2009, 14:42
lebo ho načítaš ako znak, ale vypíšeš ako číslo. Ak dávaš pri scanf %c tak do daj aj pri printf
peto1310
Light Expert
Príspevky: 37 Registrovaný: 21 jún 2006, 17:20
Príspevok
od používateľa peto1310 » 10 apr 2009, 14:45
to je urobene zamerne, lebo chcem zistit jeho cislo v ascii tab.
chrono
VIP
Príspevky: 7127 Registrovaný: 25 dec 2006, 15:17
Príspevok
od používateľa chrono » 10 apr 2009, 18:08
%c očakáva typ char a nie int (z toho int ti to nastaví len jeden bajt, v ostatných ostane to, čo tam bolo predtým) a keby si si prečítal upozornenia pri kompilácii, určite ti to tam kompilátor napísal.
peto1310
Light Expert
Príspevky: 37 Registrovaný: 21 jún 2006, 17:20
Príspevok
od používateľa peto1310 » 10 apr 2009, 18:27
aha, nno kompilator mi nijake upozornenie nevypisal, a myslis to tak ze int ma 4 bajty, cize v tych zvysnych 3och bajtoch zostane to co bolo, nie ?
neppo
Light Professional
Príspevky: 774 Registrovaný: 09 jún 2005, 15:33
Príspevok
od používateľa neppo » 10 apr 2009, 19:19
neviem mne ten kod funguje uplne v pohode. Pouzivam Dev-C++ mozno v inom kompilatore alebo v starsich verziach sa to moze lisit
piton
King
Príspevky: 1902 Registrovaný: 02 aug 2005, 0:31
Bydlisko: Hnojisko
Príspevok
od používateľa piton » 10 apr 2009, 20:42
Ma to byt takto... Kazdy spravny kompilator by ti mal vyhodit warning, ze v scanf ocakava typ char * a nie int *.
peto1310
Light Expert
Príspevky: 37 Registrovaný: 21 jún 2006, 17:20
Príspevok
od používateľa peto1310 » 11 apr 2009, 11:09
aky kompilator pouzivate ? ja pouzivam codeblocks, vlastne to je IDE
chrono
VIP
Príspevky: 7127 Registrovaný: 25 dec 2006, 15:17
Príspevok
od používateľa chrono » 11 apr 2009, 12:19
Ako si už napísal, Code::Blocks nie je kompilátor (ten program môže používať rôzne kompilátory).
Ja používam gcc a parameter -Wall (aby mi to písalo všetky upozornenia).
piton
King
Príspevky: 1902 Registrovaný: 02 aug 2005, 0:31
Bydlisko: Hnojisko
Príspevok
od používateľa piton » 11 apr 2009, 12:37
ja pouzivam tiez gcc, a warning to vypise aj bez parametra -Wall
peto1310
Light Expert
Príspevky: 37 Registrovaný: 21 jún 2006, 17:20
Príspevok
od používateľa peto1310 » 11 apr 2009, 14:15
zistil som ze codeblocks pouziva gnu gcc kompiler, ale v nastaveniach som nikde ten parameter nenasiel...