Kezdőoldal » Számítástechnika » Programozás » Miért nem működik? (C nyelv:...

Miért nem működik? (C nyelv: getchar () )

Figyelt kérdés

írtam egy kis programot:

#include<stdio.h>

#include<stdlib.h>

int main()

{

printf("hh");

getchar();

}

na ez úgy futott hogy:

kiírta hogy: hh és megállt ameddig nem nyomtam egy billentyűt és egy entert

ez oks is

de írtam egy hosszabbat ott már nem csinálta!!

lefordulni lefordult de amikor oda ért a kód hogy bekér egy billenytyűt akkor nemcsinált semmit !!"átment rajta"

miért??


2011. ápr. 21. 09:07
1 2
 1/11 anonim ***** válasza:
Ehhez talán azt a kódot kellene látni:)
2011. ápr. 21. 09:46
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:
Lehet, hogy végtelen ciklust írtál, és azért nem fut le.
2011. ápr. 21. 09:47
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:
Nem hinném, a végtelen ciklust jelzi Warningban!
2011. ápr. 21. 11:12
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:
majd leírom most nincs időm de case elágazás van és fuggvény hívás (na ezt jól megmondtam:) )
2011. ápr. 21. 13:13
 5/11 anonim ***** válasza:

Lehet, hogy a case elágazásban nem az else-be tetted a getchar()-t


Persze attól függ, mit akartál csinálni :)

2011. ápr. 21. 13:16
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:

Nem volt előtte egy másik bekérés is? Mert akkor bennemaradhatott valami a billentyűzetpufferben.


A "hh" megjelenik? Mert akkor a vezérlés rákerül.


Tipp:

Írjál a getchar elé egy readkey()-t, ami kitakarítja a puffert.

2011. ápr. 21. 13:25
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:
13:25 jól mondja, esetleg próbálj a getchar előtt egy "fflush(stdin);"-t.
2011. ápr. 21. 14:50
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:

fflush(stdin) -> értelmetlen, flusholni csak stdout-ra lehet, stdin-re nem. A fflush arra való, hogy a bufferben maradt adatokat kiírja a paraméterként átadott FILE* -ba.


A getchar()-nak szokása, hogy átszalad rajta a kód. Ez akkor fordul elő, hogyha stdin-ben (alapeset) maradt \n karakter.

2011. ápr. 21. 16:42
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:

16:42..

Úgy van, az általam leírt fflush nem "portable", elvileg nem csinál semmit, mégis sok helyen használják, mert kiüríti a bemeneti puffert. Egy megoldás a sok közül. Mi ezzel a gond?

2011. ápr. 22. 09:29
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:

utolsó előtti akkor lehet hogy a program magyarul tojik a getcar();-ra?

mnenkinek köszönöm majd még próbálgat ezek lapján!

2011. ápr. 22. 10:00
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!