Jak zatrzymać pętlę po wciśnięciu kombinacji nie będącej liczbą (scanf)

0

Witam, mój program ma zakończyc działanie pętli po wciśnięciu 'k' lub dowolnego innego klawisza. Miałem jedną teorię jak to zrobić, ale niestety nie działa. Podaję kod programu:

 
#include <stdio.h>
#define CK 273.16
#define FC_M 1.8
#define FC_A 32.0

void Temperatura(double FT);
void Temperatura(double FT)
{
    double C, K;
    C = FC_M * FT + FC_A;
    K= C + CK;
    printf("%.2lf stopni Fahrenheita to %.2lf stopni Celsjusza, czyli %.2lf Kelwinów\n", FT, C, K);
    return 0;
}

int main(void)
{
    double FT=0.0;
    while (FT >=0 || FT <0)
    {
    printf("Podaj temperaturê w stopniach Fahrenheita: \n");
    scanf("%lf", &FT);
    Temperatura(FT);
    }
    return 0;
}

I właściwie nie mam pojęcia co innego mogłem zrobić... Nie wiem o niczym, co pozwoliło mi dać warunek "należy do zbioru liczb rzeczywistych".
Jak powineinem to wykonać? Dziękuję za pomoc.
Nadmienię jeszcze, że wpisanie nieliczbowej wartości powoduje błąd w programie (pętla w nieskończoność wyświetla poprzednią wartość )

1

Starczy while (scanf("%lf", &FT)), jak zamiast spodziewanej liczby wpiszesz literę to wyrażenie (czyli scanf) będzie "false" i while się przerwie. Na pewno działa w C++, w C nie sprawdzałem ale nie widzę powodu dla którego miało by nie zadziałać.

0

No i super, działa. Można lecieć dalej, dzięki wielkie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1