Wpis z mikrobloga

#naukaprogramowania #programowanie #cplusplus

Czy mógłby mi ktoś wytłumaczyć dokładnie jak to działa i co robi ten kawałek kodu?
Wiem, że ten wycinek sprawdza czy podana wartość jest liczbą. Jeśli podam np literkę to będzie czekało dalej aż podam cyfrę. Tylko jak to działa?

while(scanf("%f", &zmienna) != 1){
int ch;
while((ch = getchar()) != '\n' && ch != EOF){
};
}
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@PrawieJakBordo: to język c, ten kawałek kodu służy do 'filtracji' wpisywanej wartości i jeśli wpiszesz coś innego niż liczba to program nie puszcza dalej

@damianex19: fajne, to już możesz wydupcać z posta i nie pajacować
  • Odpowiedz
@turbol: scanf zwraca ilość specyfikatorów które zostały z sukcesem wczytane. Czyli dopóki nie podasz stringa który może być skonwertowany na float wykonuje się to co w while() - getchar() "zjada" input aż do znaku nowej linii lub końca strumienia wejścia.
  • Odpowiedz