Diskuze: C - while cyklus
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Asi tam ještě někde předtím načítáš, takže máš v bufferu ještě hodnoty z předtím a ty si právě vezmeš ty hodnoty z předtím.
Problém je len v tom, že za zadaným znakom stláčas klávesu ENTER a to je tiež znak, musíš ho odstrániť.
#include <stdio.h>
int main(void)
{
char znak;
do{
//něco
scanf("%c", &znak);
while (getchar() != '\n') ; // odstránenie znaku enter
} while(znak != 'a');
return 0;
}
Díky moc, program jsem přepsal a už to funguje jak má
Přesně tak, problém je, že scanf bere buffer- vstupní buffer,
standardní vstup je klávesnice, proto kdykoliv pracuješ s načítáním
hodnot z klávesnice, tak je dobrý nejdřív buffer vyprázdnit
fflush(stdin);
=)
char znak;
do{
//něco
fflush(stdin);
scanf("%c", &znak);
} while(znak =='a');
Zobrazeno 6 zpráv z 6.