Witam serdecznie po raz pierwszy wszystkich członków forum.
Napisałem mały program w 'C' , który prosi użytkownika o wpisanie literki 'y' lub 'n' w celu wejścia lub rezygnacji z wejścia. Na początku działa pętla 'while'. Gdy użytkownik 'wejdzie', ma za zadanie wpisanie liczby typu int. Gdy wpisze, liczba zostaje wyświetlona w konsoli. Wiadomo, że ten stan rzeczy dzieje się w kółko, dopóty, dopóki użytkownik nie wciśnie klawisza 'y' w celu wyjścia z programu.
Problem jest w tym, że pętla działa nieprawidłowo, bo pokazuje komunikat o wpisanej liczbie 2 razy, a powinna pokazywać 1 raz. Może należy użyć funkcji 'fflush(stdin)' w celu wyczyszczenie bufora ? Jeśli tak, to proszę o jakieś sugestie.
Z góry dziękuję za pomoc i pozdrawiam!
Oto kod programu:
/*
#include <stdio.h>
#include <float.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int main() {
char repeat;
int number;
while(repeat != 'y' || repeat != 'Y'){
//fflush(stdout);
puts("Welcome at our program!\n");
printf("Enter 'y' or 'Y', if you want to finish the program\n"
"otherwise, enter 'n' or 'N': ");
repeat=getchar();
if(repeat == 'n' || repeat == 'N'){
printf("Enter some number without comma and dot: ");
scanf("%d",&number);
}else{
break;
printf("\n");
}
}
printf("The number which you have entered is: %d\n", number);
return 0;
}
*/