那么有程序正在执行它的功能,但我试图检查,如果用户输入的值是数字(不包含字母或符号)。所以基本上我使用if和isdigit或'/ 0'条件。程序编译正确,但输入少于3种类型(偶数...)时出现错误。它有什么问题?只有当我需要的是当数字是0-999时跳过循环并且当它不是时重新提问,或者如果它不是数字。检查字符是否包含数字并将其转换为INT
char x[5];
bool isgood;
int tab[20][2],i=0,a;
do
{
isgood = TRUE;
printf("Write a where 0<a<1000\n");
scanf("%4s", x);
for (int j = 0; j < 4; j++)
{
if (isdigit(x[j])==0 || x[j]!='/0') isgood = FALSE;
}
a = atoi(x);
if (a<1000 && isgood == TRUE) break;
} while (1);
其实,终止零或者是普通的'0'或''\ 0''。你的编译器应该警告你。 – usr2564301 2014-10-17 22:35:52
@WhozCraig实际上,如果isgood变得不合情理,这并不重要,因为循环只能重复4次。 – Dnoren 2014-10-17 23:10:25
@Dnoren啊。精神牙线101.它肯定是星期五。 – WhozCraig 2014-10-17 23:13:09