.

asdfasdfasdfsdsdfadsfsadfsadf의 이미지
세벌의 이미지

라스코니의 이미지

char ch;
for(;;) {
  ch = getchar();
  if (ch != '4') break;
}
여유롭고파의 이미지

입력포맷개수랑 다르면 0이 아니라 -1리턴이라네요.
While문에서 -1을 확인하도록 바꿔보세요.
직접 안짜봐서 이게 맞는지는 잘 모르겠네요.