少なくともwhile (getchar() != '\n') {}はscanf("%*[^\n]%*c");で置き換えられる。