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); 不对,该怎么改?
我的问题就是用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值。