| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2167 人关注过本帖
标题:[求助]关于输入判断的问题
取消只看楼主 加入收藏
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
 问题点数:0 回复次数:13 
[求助]关于输入判断的问题

如何判断输入的数据是字符还是数字?

如在循环中


int x;

do
{
scanf("%d",&x);


printf("%d",x)

}

while();/*要求在这里判断:如果是非数字就重新输入,该如何写?*/


。。后续语句。。



谢谢



再次谢谢帮解决问题的朋友,问题的结果我贴到这里:

#define LEN 20
#include"stdio.h"
#include <stdlib.h>
main()
{
char x[LEN];
int i,sign,answer;
do
{
i=0,sign=1;
printf("Input:");
scanf("%s",&x);
while(x[i]){if(x[i]<48||x[i]>57) {sign=0;break;}i++;}
if(sign==1) {break; printf("%s\n",x); }
}
while(1);
answer=atoi(x); /*将字符串转换为整型*/
printf("%d",answer);
}

[此贴子已经被作者于2007-3-13 19:00:46编辑过]

搜索更多相关主题的帖子: 判断 输入 
2007-03-12 15:37
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 
以下是引用PcrazyC在2007-3-12 15:48:37的发言:

数字不是有对应的ASCLL码吗?

只有0-9的啊


0-9

48-57

那输入大于一位的如何区分?

2007-03-12 15:50
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 
以下是引用neverTheSame在2007-3-12 17:03:37的发言:

do
{
scanf("%d",&x);


printf("%d",x)

}while(!(x>='0' && x<='9'))




这个我去调试了,不正确!我继续往下看

2007-03-12 18:28
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 

谢谢12楼和13楼以及帮我出主意的所有朋友啊

12楼

13 楼

4楼的等我再去研究下!


2007-03-12 18:33
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 
while(1);

这个不是值永远为真(非0)的吗?这点还不能理解透,再帮点拨下,谢谢
2007-03-12 19:33
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 
以下是引用PcrazyC在2007-3-12 19:46:02的发言:
里面如果执行BREAK,就可以退出循环了



明白,原来
do
....

while(1);
是一个死循环,只有内置break语句才能跳出

2007-03-12 20:13
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 
while(x[i]){if(x[i]<48||x[i]>57) {sign=0;break;}i++;}


弄了半天,才将这句话弄懂
2007-03-13 14:31
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 
以下是引用★红狼在2007-3-13 15:26:37的发言:

我来给你个办法:
while(scanf("%d",&a)==0)
这样就行.直到你 正确为止 要不一直循环



你自己去测试下吧!

你的这个一输入字符就挂

2007-03-13 18:24
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 
以下是引用无玩过界在2007-3-13 18:35:03的发言:
scanf();如果输入非法时,会返回与正常的值不同的值。

是啊,然后非正常的值 用在while当中作条件,那肯定是挂了

2007-03-13 18:37
冰天雪
Rank: 1
等 级:新手上路
威 望:1
帖 子:331
专家分:0
注 册:2007-2-27
收藏
得分:0 
以下是引用无玩过界在2007-3-13 18:40:10的发言:
或许,他的意思是这样区分字符与数字不同。

区分字符与数字那就只能用ASCII码,而不能简单的这么用

2007-03-13 18:45
快速回复:[求助]关于输入判断的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017051 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved