用c语言如何描述非数字值

作为while的判断条件

因为double类型数据占用8个字节,通过运算符sizeof可以判断: 如果参数arg为double类型,则
sizeof(arg)的值是8,在循环条件中可以这样描述
while(sizeof(arg) == 8) {
......
}
当然这个方法不够完美,假如arg是构造类型,其长度也恰好是8,通过sizeof()判断,则会出现错误。因此建议你将想过代码,或算法贴上来,以便大家给你出主意。追问

没有具体的代码,只是看到某个题目要求while的判断条件是设定一个固定的字符。
我突然想知道while的条件能不能直接判断输入的是否是数字(整数,小数之类的)。

追答

判断某个数据的类型确实没有好的方法,因为这是语言的基本元素,这些元素的是透明的、已知的。比如在函数声明语句中,必须提供参数类型,调用函数时,实参的类型必须与形参一致,即使实参是一个表达式,也要求该表达式的结果类型可以转换(系统自行转换)为形参类型,如果你熟悉C++的模版函数,就知道参数类型和返回值类型也是从始至终不变的,或者说,给定类型不会在函数运行前、后、中发生任何改变。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-15
以字符串的形式读入double的数字 ,然后判断 每一位的啊斯克码值是否在48-57之间本回答被提问者采纳
第2个回答  2012-01-15
数字的范围是0到9,其他的都是非数字的。
int i;
while(i<0 || i>9)
{
......
}
就这样追问

i 是 double 类型的呢,比如:23.45,该怎么办?

追答

i不能是double 只能是整型 不然怎么比较?

第3个回答  2012-01-15
你想判断的是什么 比较字符串吗?追问

题目要求输入一个double的数字,用while判断它是不是数字,是则进行相应的计算;不是则跳出。

追答

用string 类型的函数就可以判断的 比如strcmp strstr strcat 等等 根据不同的功能有不同的函数,用的时候要导入string.h 头文件
还有些其他函数 比如说atof(),你输入100.10abce ,他的返回值是100.10,看你怎么输入了,你可以留个邮箱 我发你个API ,你可以自己看看,这种大概有20个左右,你可以根据需求自己选。

追问

[email protected] 谢了

追答

你尽量说把需求说详细点,或者贴个程序,你的要求是区分double和int ,还是区分double和string看着很不清楚。

追问

没有具体的代码,只是看到某个题目要求while的判断条件是设定一个固定的字符。
我突然想知道while的条件能不能直接判断输入的是否是数字(整数,小数之类的)。

相似回答