问题描述
- 如何判断输入时是不是数字(输入是非数字或者输入为负数则跳出while循环)
-
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码判断,不是就退出
解决方案六:
while循环中,用scanf输入一个float型的数字,如何让判断输入的是否为数字...
时间: 2024-12-27 16:55:31