2014-11-21 7 views
0

사용자가 두 개 이상의 문자를 입력하면 버퍼를 지우는 데 while(getchar()!= '\n');을 사용하고 있습니다.C가 버퍼 지우기 후에 계속됩니다.

두 개 이상의 문자를 입력해도 프로그램이 멈추지 않습니다. 그러나 한 캐릭터가 입력되면 계속하기 위해 입력을 기다립니다. 한 글자 만 입력해도 어떻게 계속할 수 있습니까? 제공되는 도움에 감사드립니다.

+6

이론적으로 설명하기보다는 여기 코드를 게시하는 것이 좋다에 커밋하기 전에 키보드 버퍼를 확인하실 수 있습니다 .. – sas

답변

0

당신은 읽기

while (kbhit()) getch(); 
+1

는'kbhit()는 '표준하지 않고하지 않을 수 있습니다 는 가능하다. – Dmitri

+0

이 함수는 일종의 "불법"입니다. – sas

+0

나는 코드 실행이 사용자의 입력보다 우선 할 수 있기 때문에 원하는 입력 뒤에 아무런 유익이 없다는 것을 추가 할 예정 이었으므로 다음 사용자가 입력하기 직전에 입력해야합니다. 그러나 똑같이 적용됩니다. OP는 원래 자신의 한 줄을 올린 것으로 충분하다고 말했지만 그럴 수는 없습니다. 어떤 경우에도 GIGO 규칙이 적용됩니다. –