2015-12-03 65 views
-3

將輸入存儲在char中,無論輸入如何,即使是3位整數,也應將其輸出到控制檯。將字符轉換爲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; 
} 
+1

'getche'不是標準功能。 – Olaf

+0

是的。它得到一個角色。但我想獲得字符和字符是例如「123」。我想控制檯顯示相同的「123」 –

+1

您是否嘗試過使用getc或getchar? – bruceg

回答

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; 
} 

還要注意的是

  • 不知道有關getche()getchar()將返回int,並且它可能會返回EOF,whuch不會適合於char。因此,使用int來存儲什麼getchar()返回是一個好主意。
  • 爲便於攜帶,您應該使用'0'而不是48。在ANSI C中保證'1' - '0' == 1,...,'9' - '0' == 9 in C.
+0

謝謝Mike,這就是我所問的。 –

+0

最後一個問題,這可以放在一個循環,要求多次輸入一個3位數字,直到按下特別的東西? –

+0

對不起,這段代碼太天真了,不適合循環使用。請考慮使用'scanf()'。 – MikeCAT