① c语言有关非法输入的问题
int flag = scanf("%d,%d",&i,&j)
如果flag为0,那就是输入错误,因为scanf的返回值是正确输入的个数
② c语言 非法输入
这个数据验证非常简单,请看代码:
/* 放到程序全局部分 */
#define PLUSH while (getchar() != '\n')
/* 变量声明 */
int input_result;
/* 数据输入以及验证 */
do {
input_result = scanf("%d",&num);
if ((input_result != 1) || (num > 11)) {
PLUSH;
printf("您输入的型信手数据有卜嫌误,请重新输入:");
}
} while ((input_result != 1) || (num > 11));
请用/* 数据输入以及验证 */的这段代码替代您程序中的以下部分:
while(1)
{
printf("请输入您的选择:\n");
scanf("%d",&num);
if(num>=0&&num<=11)
{
break;
}
else
printf("您的选择坦咐错误,请重新输入:\n");
}
③ c语言 非法输入
主要是输入流没有清除.
可以用羡野fflush()清空
输入\输出
流.
以下是代哪配码:
while(1)
{
/*...省略...*/
else
{
fflush(stdin);
//清除输入缓存区.
printf("您的选择错误,请重新输入:\兄缓喊n");
}
/*....*/
④ C语言中如何控制非法输入
1.
c语言中大部分自带的方法都有返回值,像scanf方法如果输入正确的话,它会返回一个正整数,所以你可以通过它来判断,如果输入不正确的话它返回是0,你就可以通过这个判断是否为非法输入。
2.
scanf()函数有返回值且为int型。
scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。
scanf("%d%d",
&a,
&b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end
of
file,返回值为EOF。
⑤ C语言编程问题,求高手解答遇到输入非法字符时,怎么处理。
可以采用如下语句
while((scanf("%d",&x))==1)
{}
只有输入一个数字时,才进入主体语句