이 코드 블록에 문자 또는 그 이상의 문자가 입력 된 경우 어떻게 버퍼를 지울 수 있습니까?입력 확인 및 키보드 버퍼 지우기
int x = 1;
float grade = 0.0;
do
{
printf ("Enter a grade for quiz %d: ", x);
scanf ("%f", grade);
if (grade >= 1 && grade <= 10) break;
printf ("Entry not valid. Please try again\n");
} while (1);
강사는 fflush (stdin)을 사용한다고 주장합니다. 내가 알기로는 일하지 않을 것이고, 나는 그를 그에게 불렀다. 숫자를 입력했는지 확인하는 다른 방법은 무엇입니까?
당신은 단순히 문자열을의 getline 접근 방식을 사용하고 구문 분석에 읽을 수 자신은 단지 하나의 소수점으로 숫자 확인하기 위해. 확인 후에 실제 숫자 유형으로 변환 한 다음 원하는대로 처리합니다. – trumpetlicks
왜 작동하지 않습니까? 나는 그것을 사용하고 멋지다! 나는 당신이 그것을 틀린 방법으로 사용하고 있다고 생각한다. –
user689 어떻게 fflush를 올바르게 사용할 수 있습니까? fflush (stdout)을 여러 장소에 넣었지만 코드는 계속 무한 루프에 들어갑니다. – user3284399