2011-12-28 2 views
-1

사용자 입력의 유효성을 검사하려고합니다. 여기에 코드입니다 :사용자 입력 유효성 검사 - 목표 -C

do{ 
     NSLog(@"Please select from the following options: D/ W/ T/ Q"); 
     res = scanf("%c", &s1); 

     if(res ==0) { 
      NSLog(@"Invalid entry."); 
     } 
    }while (res ==0); 

내가 그것을 입력 아무것도에 사용자를 허용하지 않도록 위의 코드를 향상시키고 자하지만 하나의 단일 문자 ((예 : 숫자, 문자열, 또는 음수로) 구체적으로, 프롬프트에서 주어진 옵션 중 하나만).

현재 코드는 그렇게하지 않습니다.

+0

서명이 삭제되었습니다. FAQ를 참조하십시오. –

+0

@Sameera : 나머지 서명을 제거 할 때 "감사"부분을 삭제하십시오. –

답변

1
boolean bValid = true; 
    do { 
     NSLog(@"Please select from the following options: D/ W/ T/ Q"); 
     res = scanf("%c", &s1); 

     if(res == 'D' || res == 'W' || res == 'T' || res == 'Q'){ 
      bValid = false; 
     } 
     else{ 
      //Error message 
     } 
    } while (bValid == true); 

이 코드를 사용할 수 있습니다. 그냥 확인해보십시오.

+0

감사합니다. - 이것이 완벽합니다. – Renu

1

잘 하나의 옵션은, 첫 번째 편지는 귀하의 경우 중요한 것 같다 당신이 선을 일단, 다음이 옵션 중 하나인지 여부를 확인

char buffer[128]; 
fgets(buffer, sizeof(buffer), stdin); 

문자열로 키보드를 읽고 처음이다 :

switch(toupper(buffer[0])) 
{ 
    case 'D': {...} ; // do whatever u need to do 
    case 'W': {...} ; 
    case 'T': {...} ; 
    case 'Q': {...} ; 
    default: {...} ; 
} 
관련 문제