再atoi()变成数字就好了....

简单的快乐着~
2007-10-27 14:14
2007-10-27 19:56
#include<iostream>
#include<cstring>
#include<iomanip>
using namespace std;
main()
{
cout<<"insert a string:"<<endl;
char a;
int sum=0;
int sign=1;
cin>>a;
while(a!='#')
{
a-=0x30;
if((0x1<=a)&&(a<=0x9))
{
sum*=10;
sum+=a;
}
else
{
cout<<"the string is a charstring!"<<endl;
sign=0;
break;
}
cin>>a;
}
if(sign)
cout<<"the string is a number= :"<<sum<<endl;
}
不知道你说的是这个意思不?

2007-10-27 22:31
2007-10-28 18:04
答楼上问:
(1)我这里的char a;是一个临时变量。用来逐位读入输入的字符串中的字符。在c/c++中它都占用一个字节。
(2)0x30是十六进制的30也就是十进制的48.原因:按字符读0-9的数字时,读入的是它的ASCII码。分别为30H-39H。
建议楼主看下汇编方面的书

2007-10-28 18:48
2007-10-28 18:49
但我想输入超过9的数字,是数字,不是用字符拼凑。
2007-10-28 20:57
我定义了一个共用体,
#include <stdio.h>
union number
{
double d;
char s[64];
}num;
union number select();
void main()
{
select();
}
union number select()
{
printf("please input any thing !\n");
if(scanf("%lf",&num.d))
printf("this is a number:%lf\n",num.d);
else
{
gets(num.s);
printf("this is a string:%s\n",num.s);
}
return num;
}
2007-10-28 22:15
2007-10-28 23:59
2007-10-29 00:00