【发布时间】:2013-02-20 06:35:30
【问题描述】:
我正在尝试遍历一个字符串以查看输入是否为整数。
这是代码:
for (int i = 1; i < strlen(buffer); i++) //Checking that each character of the string is numeric
{
if (!isdigit(buffer[i]))
{
valid = false;
break;
}
}
if(valid == false)
{
printf("Invalid input!");
}
else
{
num = atoi(buffer);
printf("The number entered is %d", num);
}
问题是即使输入正确,比如说2,输出消息仍然是“无效输入!”。
我现在很沮丧。我尝试过使用 atoi 函数、strtol 函数和其他方法,以便我可以验证一个数字并确保:
1) 这不是一个字母 2) 它是一个整数
请帮助我。我已经尝试解决这个问题超过 2 小时。
【问题讨论】:
-
您需要发布您的 isdigit 代码
-
isdigit 是 ctype.h 库提供的方法。我不是自己创建的
-
这显然是不是 过于本地化。代码 sn-p 很明显,但输出却出乎意料。
-
阅读
man页面会有所帮助。以及学习如何使用调试器。 -
而且还是
int main(void)。
标签: c validation input integer fgets