Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Molim vas za pomoc u vezi znakova u C-u

[es] :: C/C++ programiranje :: Molim vas za pomoc u vezi znakova u C-u

[ Pregleda: 1742 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

flx

Član broj: 41193
Poruke: 56
*.nat-pool.bgd.sbb.co.yu.



+1 Profil

icon Molim vas za pomoc u vezi znakova u C-u05.12.2004. u 16:34 - pre 236 meseci
Ovo je mali kod koji bi terbalo da opise moj problem:

Code:

main(){
    char b;

    while(1){
    printf("Unesi karakter?");
    b=getchar();
    
    }
}

Prvi put kada prolazi kroz ciklus,on regularno izbaci na ekran "Unesi karakter" i ceka na unos,kada sledeci put prolazi kroz ciklus on kao da preskoci jednom funkciju getchar i dva puta ispise "Unesi karakter".U cemu je tu problem?
Ja se izvinjavam ako je ovo pitanje glupo,ali ja stvarno ne znam u cemu je problem.
Hvala

[Ovu poruku je menjao Dragi Tata dana 06.12.2004. u 15:25 GMT+1]
 
Odgovor na temu

Milos Stojanovic
Belgrade

Član broj: 10343
Poruke: 1864
*.nat-pool.bgd.sbb.co.yu.

ICQ: 282954730
Sajt: www.sietf.org


+7 Profil

icon Re: Molim vas za pomoc u vezi znakova u C-u05.12.2004. u 20:12 - pre 236 meseci
Problem je što ti uneseš karakter, i nakon toga pritisneš enter. On to registruje kao dva znaka.
Jedno rešenje bi bilo
Code:
while(1)
{
     if (b != '\n')
          printf("Unesi karakter?");
     b=getchar();          
}
mada ne znam za šta ti konkretno treba.
ex. trooper
Oh goody... it's my Illudium PU-36 Explosive Space Modulator!
Softversko Inženjerstvo
♪♫♪
 
Odgovor na temu

Alef
Viktor Kerkez
Novi Sad

Član broj: 505
Poruke: 188
*.59.eunet.yu.



Profil

icon Re: Molim vas za pomoc u vezi znakova u C-u05.12.2004. u 20:34 - pre 236 meseci
Pa nema problema… :)

Stvar je u standardnom ulazu, tj. njegovom internom buffer-u. Kada god pritisneš neki taster, karaker koji si pritisnuo se smešta u red (mislim na FIFO strukturu podataka). Funkcija getchar samo uzmima prvi karakter u redu (onaj koji je prvi unet, uzme ga i obriše iz reda), a čeka na unos samo ukoliko je buffer prazan. E sad, kada prvi put pozoveš getchar, ti nisi pritisnuo samo, recimo, karakter 'p', nego si pritisnuo i eneter, tj. '\n', pa kada uđeš u sledeći ciklus petlje, getchar, pošto buffer nije prazan, uzme iz njega '\n' i ne čeka na unos.
I to je to…
 
Odgovor na temu

flx

Član broj: 41193
Poruke: 56
*.nat-pool.bgd.sbb.co.yu.



+1 Profil

icon Re: Molim vas za pomoc u vezi znakova u C-u05.12.2004. u 20:46 - pre 236 meseci
Hvala na objasnjenju,sad mi je jasno.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Molim vas za pomoc u vezi znakova u C-u

[ Pregleda: 1742 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.