Хорошая или плохая практика для диалогов в wpf с MVVM?
scanf оставляет пробел во входном буфере, включая символы новой строки. Чтобы использовать fgets для чтения следующей строки, вам нужно вручную удалить оставшуюся часть текущей строки:
int c;
do{
c = getchar();
}while(c != EOF && c != '\n');