Objective c 验证用户输入-目标-C
我正在尝试验证用户输入。代码如下:Objective c 验证用户输入-目标-C,objective-c,ios4,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); 我想改进上面的代码,这样它就不允许用户输入任何东西
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);
我想改进上面的代码,这样它就不允许用户输入任何东西(例如数字、字符串或任何负数),而只允许输入一个字符(具体来说,只允许提示中给出的选项中的一个)
当前的代码不能做到这一点 一个选择是首先把键盘读成字符串
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: {...} ;
}
您可以使用此代码。
签出即可。签名已删除,请参考常见问题。@Sameera:删除签名的其余部分时,请随意删除“谢谢”部分。谢谢您--这太完美了。
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);