在C语言中将字符转换为3位整数
输入被存储在一个字符中,无论输入是什么,即使是3位整数,都应该输出到控制台在C语言中将字符转换为3位整数,c,C,输入被存储在一个字符中,无论输入是什么,即使是3位整数,都应该输出到控制台 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char a; printf("Enter a character :"); a=getche(); int x = (int)a - 48; printf("\n Character is %d",x); return 0; }
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
char a;
printf("Enter a character :");
a=getche();
int x = (int)a - 48;
printf("\n Character is %d",x);
return 0;
}
#包括
#包括
int main(int argc,char*argv[]){
字符a;
printf(“输入字符:”);
a=getche();
int x=(int)a-48;
printf(“\n字符为%d”,x);
返回0;
}
没有错误检查的简单实现:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int a, b, c;
printf("Enter three characters :");
a=getchar();
b=getchar();
c=getchar();
int x = (a - '0') * 100 + (b - '0') * 10 + (c - '0');
printf("\n Characters are %03d",x);
return 0;
}
#包括
#包括
内部主(空){
INTA、b、c;
printf(“输入三个字符:”);
a=getchar();
b=getchar();
c=getchar();
INTX=(a-‘0’*100+(b-‘0’*10+(c-‘0’);
printf(“\n个字符为%03d”,x);
返回0;
}
还要注意
- 不知道
,getche()
将返回getchar()
,并且它可能返回int
,而这不适合EOF
。因此,使用char
存储int
返回的内容是一个好主意getchar()
- 为了便于携带,您应该使用
而不是'0'
。ANSI C保证48
'1'-'0'==1
'9'-'0'==9
getche
不是标准函数。是的。它得到一个字符。但是我想得到char,这个char是例如“123”。我希望控制台显示相同的“123”,您是否尝试过使用getc或getchar?@MajkJohnoson没有您的错误getche()
不是标准的,如果我没有弄错的话,我相信它可以在conio.h
标题中找到。使用getchar()
或getc(FILE*stream)
是,它现在会得到一个字符,但当我输入例如352时,它只向控制台显示3。这是主要的问题。谢谢你,迈克,这就是我要问的。最后一个问题,这能不能放入一个循环中,要求多次输入一个3位数的数字,直到按下某个特殊的键?对不起,这个代码太幼稚了,不适合循环。请考虑使用<代码> SCANFER()/<代码>。