C++中cctype头文件中的isdigit()函数如果参数是0~9,则函数返回true,这个函数只能判断是个数么?如果我要判断两位数、三位数......还能用么?
while(cin>>num) 其中num为整形变量,其中括号中的语句可以判断输入是不是数字?是怎么样的原理?
还有其他方法么?ASCII怎么用呢?
cin>>num肯定是数字
while (cin>>num)
{
if (num < 0) break;
}
因为num类型定义了。cin输入的时候就会判断。它需要把你输入的转换为num,所以类型不对就会转换失败。
内部原理
while (c = getchar())
{
if (c >= '0' && c <= '9')
{
num *= 10;
num += (c - '0');
}
else
{
出错
}
}
输入前定义了类型,如果输入的不是数字,程序会将字符处理成它的ASCII码
用ASC码判断,不是就退出