Hallo, mein Programm läuft unter Windows. Dort nehme ich fflush um stdin zu leeren.
Unter Linux geht das so nicht, und ich weiß nicht, wie ich es sonst machen soll.
https://onlinegdb.com/H1TLXWIzL
Gibt man z.B. immer 222 ein, so kommt direkt danach die Ausgabe "Test" (So ist es richtig)
Gibt man aber immer nur eine 2 ein, so geschieht das erst alle 2 Zeilen. (Falsch)
Laut Debugger bin ich stuck in der while Schleife, welche stdin leer machen soll. Hat wer ne Idee wie ich das beheben kann?
#include <stdio.h>
#include <stdlib.h>
int test(){
char input[3];
for(;;){
fgets(input, 3, stdin);
if(input[0] == '1'){
return atoi(input);
}
printf("Test\n");
while ((getchar()) != '\n');
/*fflush(stdin);*/
}
}
int main() {
int inp;
inp = test();
printf("%d", inp);
return 0;
}