Naučit se PHP Naučit se PHP
Pouze tento týden až 80 % sleva na vývoj webů v PHP.
Extra 10 % bodů navíc a tričko zdarma při zadání kódu "TRIKO10"

Diskuze: Getchar()

C a C++ C a C++ Getchar() American English version English version

Aktivity (1)
Avatar
Kubas129
Člen
Avatar
Kubas129:26.11.2018 19:03

Ahoj, prosím
Jak vymažu klávenicový buffer?
že já mám v programu jednou getchar(), který mi načítá po znak }
a pak potrebuju mit jeste jeden ale ten bezi zase od pocatku tudiz mi nenacte to co teprve napíšu ale načítá už to co jsem napsal. Popřípadě dá se to vyřešit nějak jinak? díky moc
A nebo další možnost jak by se dal vyřešit muj problem by byla pres scanf(prom)
potreboval bych že pokud uživatel nezada nic jen klepne enter (nova radka) aby to ten scanf poznal a vyskocil by z funkce. Diky moc za vsechny rady

 
Odpovědět 26.11.2018 19:03
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Kubas129
DarkCoder:26.11.2018 19:25

Vymazání vstupního bufferu provedeš následovně:

int ch;
while ((ch = getchar()) != '\n' && ch != EOF);

nebo

fseek(stdin,0,SEEK_END);

Lépe specifikuj svůj problém.
Funkce scanf() vrací počet úspěšně načtených znaků. Vrácenou hodnotu můžeš otestovat na nulu a pomocí return ukončit funkci. Ale toto asi není to co chceš.

Ty musíš postupovat následovně:
Pomocí scanf() načteš hodnotu. Otestuješ na to zda byla správně načtena do proměnné. Pokud ano, pokračuješ dále v programu, pokud ne, zavoláš scanf() znovu. Je třeba být přátelský vůči uživateli.

PS: Nezakládej zbytečně nový dotaz týkající se stejného problému.

Nahoru Odpovědět 26.11.2018 19:25
"„Učíš-li se proto, aby sis zapamatoval, zapomeneš. Učíš-li se proto, abys porozuměl, zapamatuješ si."
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.