主题:请教一个输入的问题
我写了个文件
#include <stdio.h>
#include "engineer.h"
int fanhui()
{
int i=0,j,k,a;
char b[100];
for(;;)
{
j=0;
do
{
printf("请输入工程师编号(1-2000):\n");
if(1!=scanf("%d",&a)||a>2000 ||a<1||strlen(b)>0)
{
fflush(stdin);
printf("输入不符合要求,请重新输入:\n");
printf("\n");
continue;
}
fflush(stdin);
break;
}while(1);
for(i=0;i<10;i++)
{
while(personl[i].no==a)
{
j=1;
printf("该编号已存在,请重新输入\n");
printf("\n");
break;
}
}
if(j==0)
{
fflush(stdin);
return a;
}
}
}
我定义了一个变量int a;来输入编号的,现在的问题是如果scanf("%d",&a)输入的是1a,程序自动认为输入的1。但要求是如果输入数字以外的其他任何字符都应该提示输入错误,该怎么写,谢谢了!!!
#include <stdio.h>
#include "engineer.h"
int fanhui()
{
int i=0,j,k,a;
char b[100];
for(;;)
{
j=0;
do
{
printf("请输入工程师编号(1-2000):\n");
if(1!=scanf("%d",&a)||a>2000 ||a<1||strlen(b)>0)
{
fflush(stdin);
printf("输入不符合要求,请重新输入:\n");
printf("\n");
continue;
}
fflush(stdin);
break;
}while(1);
for(i=0;i<10;i++)
{
while(personl[i].no==a)
{
j=1;
printf("该编号已存在,请重新输入\n");
printf("\n");
break;
}
}
if(j==0)
{
fflush(stdin);
return a;
}
}
}
我定义了一个变量int a;来输入编号的,现在的问题是如果scanf("%d",&a)输入的是1a,程序自动认为输入的1。但要求是如果输入数字以外的其他任何字符都应该提示输入错误,该怎么写,谢谢了!!!