проблемы, возникающие с fgets при выполнении программы из командной строки

scanf("%d",&a); fflush(stdin); fgets(ch,SIZE,stdin); //SIZE=100 and ch is a char array 

Я только что использовал только эту часть кода. Он работает нормально нормально. Но когда я выполняю эту программу из cmnd prmpt, используя file.exe output.txt он дает значение мусора в файле output.txt.

Вы можете очистить stdin с помощью getchar или fgetc(stdin) :

 static void flush_stdin(void) { int c; while ((c = fgetc(stdin)) != '\n' && c != EOF); } scanf("%d",&a); flush_stdin(); fgets(ch,SIZE,stdin); //SIZE=100 and ch is a char array