C语言strtol和getchar的用法问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 23:48:46
C语言刚开始弄,完全搞糊涂了,请高手指点。
我的问题就是用getchar输入一个数,赋给另一个数进行运算。
Int ch1=getchar(); 如果我输入5,这样得到的ch1是个字符还是整数5?
如果是字符,用strtol怎么可以把ch1变成整数5.

总之我的问题就是,用键盘输入一个数,来进行运算,但是用getchar函数得到的好像都是字符,该怎样把得到的字符改变为整数?

strtol(const char *nptr,char **endptr,int base); 具体该怎么设置?
直接用strtol(ch1,NULL,10); 不对,该怎么改?

用scanf即可
int a = 0;
scanf("%d", &a);
你输入100,回车,a就成了100

#include"stdio.h"
#include"stdio.h"
main()
{char ch;
ch=getchar();
printf("%d,%c",ch,ch);//控制输出格式就OK
}
不过输入5,输出是ascii码值或者是字符

char ch1=getchar();
int x=ch1-'0';

x就是整数了~ 用不着strtol的

char ch1=getchar();

得到的是个字符'5' 对应的ascll码是35(16进制)或53(10进制)即他表示为整数53,如果要转成整数5 就是53-48 = 5, 48刚好是'0'的ascll码,代码如下:

int x=ch1-'0';//x就是整数5了

用scanf更好,getch得到的是它的ASCII值。