验证用户输入 - Objective-C

时间:2011-12-28 06:56:24

标签: objective-c ios4

我正在尝试验证用户输入。这是代码:

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); 

我想改进上面的代码,以便它不允许用户输入任何东西(例如数字,字符串或任何负数)但只允许输入一个字符(具体而言,只有一个选项)在提示中给出。)

目前的代码并没有这样做。

2 个答案:

答案 0 :(得分: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: {...} ;
}

答案 1 :(得分: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);

您可以使用此代码。 看看吧。