在C语言中将字符转换为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; }

输入被存储在一个字符中,无论输入是什么,即使是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;
}
#包括
#包括
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'
    而不是
    48
    。ANSI C保证
    '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()/<代码>。