| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2416 人关注过本帖
标题:c++中如何检查输入的是否为数字,谢谢
只看楼主 加入收藏
wumingsx
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-3-10
收藏
 问题点数:0 回复次数:6 
c++中如何检查输入的是否为数字,谢谢
c++中如何检查输入的是否为数字,谢谢
搜索更多相关主题的帖子: 数字 检查 输入 
2006-03-26 21:44
ElfDN
Rank: 4
等 级:贵宾
威 望:11
帖 子:291
专家分:0
注 册:2005-11-13
收藏
得分:0 

寒,你按字符串读入,然后-个‘0’就知道了么


2006-03-27 00:01
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 
定义一个数据类型为 int
然后对 cin 做是否成功判断。

自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2006-03-27 00:18
heliujin
Rank: 2
等 级:论坛游民
帖 子:249
专家分:14
注 册:2006-3-14
收藏
得分:0 
输入的应该是字符串 然后强制INT转换成INT型的 再进行判断 也行否?
2006-03-27 17:02
macton
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-3-19
收藏
得分:0 
#include <iostream.h>
#include <string.h>
#include <ctype.h>

bool IsNumber( const char *number ) {
bool isnumber = true;
int len = strlen( number );
if(len == 0 || len > 9) {
return !isnumber;
}
for( int i = 0; i < len; i++ )
{
if( isdigit( number[i] ) == 0 )
{
if( number[i] == '.' )
{
if( i + 1 > len - 1 )
{
isnumber = false;
break;
}
}
else if( number[i] == '+' || number[i] == '-' )
{
if( i - 1 >= 0 )
{
isnumber = false;
break;
}
}
else
{
isnumber = false;
break;
}
}
}
return isnumber;
}

void main()
{
char number[20] = {0};
cout << "Enter a number: ";
cin >> number;
if(!IsNumber(number))
cout << "This is not a valid number" << endl;
else
cout << "Thanks for entering a number!" << endl;
}

虚心学习!
2006-03-30 18:22
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 

直接用getch();

判断它的ASCII的值就行拉
getch() 左支有个功能是 如果是
int x;
x=getch();这样x里面是这个字母的ASCII码
用这个判断就行.


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-03-31 13:07
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
收藏
得分:0 

#include <iostream.h>
#include <string.h>
#include <ctype.h>

#define NUM "0123456789."

bool IsNumber( const char *number ) {
bool isnumber = true;

int len = strlen( number );
if(len == 0 || len > 9) {
return !isnumber;
}

if (number[0] == '-' || number[0] == '+') {
for(int i=0; i<len -1; ++i ) {
if(strchr(NUM, number[i + 1]) == NULL)
return !isnumber;
}

}else{
for(int i=0; i<len; ++i ) {
if(strchr(NUM, number[i]) == NULL)
return !isnumber;
}
}

return isnumber;
}

void main()
{
char number[20] = {0};
cout << "Enter a number: ";
cin >> number;
while (!IsNumber(number)) {
cout << "not number" << endl;
cout << "Enter a number: ";
cin >> number;
}
cout << "OK!" << endl;
}

[此贴子已经被作者于2006-3-31 14:26:19编辑过]


未必钱多乐便多,财多累己招烦恼。 清贫乐道真自在,无牵无挂乐逍遥。
2006-03-31 14:02
快速回复:c++中如何检查输入的是否为数字,谢谢
数据加载中...
 
   



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

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