работа функции getchar() в цикле while

Есть вот такая вот функция:

int function(){ 
  int n;
  while(!scanf("%d",&n))
  {
    printf("You didn't enter a number. Try again.\n");
    while((n=getchar())!='\n');
  }
  return n;
}

Вопрос состоит в том, каким образом работает вложенный цикл while, и как вся эта конструкция зацикливается. Я не совсем понимаю, например, что делает (n=getchar())!='\n', и что происходит при повторном вводе. Какая строка срабатывает?


Ответы (0 шт):