2015-01-18 3 views
-1

정수가 아닌 값이 입력 될 때까지 값을 계속 읽는 루프를 만들고 싶습니다 (여기서 정수). 예를 들어 , 여기에 내가입력 된 값의 유형을 테스트하는 함수

while(true) 
{ 
    scanf("%d",&w); 
    if (w==100) break; 
    else fwrite(&w,sizeof(int),1,f); 
} 
를 작성한 코드

만 바로 사용자가 숫자 100를 입력하지만 내가 검색의이야하는 기능입니다하는 테스트 또는 그것은 정수인지 여부 또는 입력 된 값으로 오류를 감지 할 것인지를 테스트하는 일종의 방법입니다. isdigit() 여기에서 트릭을 가져 오지 않는 것 같습니다.

아이디어가 있으십니까?

답변

2

당신은 또한 당신이 scanf 도랑 수 있으며, 단지 fgets로 문자열을 읽어 반환 값의 형태 scanf

if (scanf("%d", &w)) != 1) { 
    /* error, input doesn't match. */ 
} 

를 확인할 수 있습니다. 그런 다음 문자열을 걸어서 isdigit을 수행하고 입력 여부를 결정할 수 있습니다.

+0

거대한 감사 인사 – user3785612