c++中如何将char型数据转换成int float double

我想用 char 来接收 键盘输入的 而且最终要让他转换成 数字
char 只是接收单个字符啊~! 我如果要是输入 “adfa” 就是多个字符 还是要报错啊! 下面是我写的代码 但是 接收字符的话 就会循环出错了!
int y = 0;
bool c = true;
cout<<"请输入缸个数(1 单缸、2 双缸、3 三缸):";
cin>>y;//接收缸的个数
while(c)
{
if(y==1 || y==2 || y==3)
{
one.set_gangNum(y);
c = false;
}
else
{
cout<<"您输入的参数有误,请重新输入:";
cin>>y;
}
}

char本来就是个数字,如果就是转换,直接int i = ch就可以了。
关键是看你要做什么。。还有什么编程环境追问

我是做个菜单选项~! 所以就要排除 字母的输入 所以只能用char 来转换成 数字!

追答

呃。。还是不清楚,
如果只是判断数字有效,最合理的是用键盘钩子,对非数字输入丢弃。
如果只是判断是否数字,这样就可以啊:
ch=getchar();
if (ch>='0'&&ch<='9')
{
.......
}

追问

您好 我问题补充了一下 您帮我看下!

追答

请输入缸个数(1 单缸、2 双缸、3 三缸):
你限定的不就是输入数字么?输入字母就不处理吧。
如果不希望产生系统报错,用一个字符串接收,然后试用_atoi(int,str,10)来转换成数字,这样就不会出现系统报错了。

追问

我想做到完善~! 就是 程序接收键盘的 字母 他就自动跳转回去重新输入 !

追答

用一个字符串接收,然后试用_atoi(int,str,10)来转换成数字,就可以
cout <<str<< endl;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-27
char a = 'c';
int i = a;
cout << i << endl; // 输出的就是数字;
第2个回答  推荐于2018-04-06
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void main ( )
{
char a[100];
char *step;
gets(a);
printf("%d\n%f\n%f\n",
atoi(a),
atof(a),
strtod(a,&step)
);
}本回答被网友采纳
第3个回答  2012-04-27
atof()有这个函数 可以实现你要的 可以百度百科查下