Miért nem működik? (C nyelv: getchar () )
í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??
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 :)
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.
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.
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?
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!
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!