2017-11-01 8 views
-2
#include <stdio.h> 

int main() 
{ 
     char c = 'A'; 
     while (c != ',') 
     { 
       printf("Input a character:"); 
       scanf("%c", &c); 
       if (c >= '0' && c <= '9') 
       { 
         printf("%d\n", (int)c); 
       } 
     } 
} 

첫 번째 입력 집합을 가져간 후에이 코드는 매번 두 번 "문자 입력"을 인쇄합니다 - 왜 그런가?이 C 프로그램이 두 번 인쇄되는 이유

+3

삽입 빈 % 전에는 scanf ("%의 C", &c); 그렇지 않으면 새 라인 문자에 scanf()로 읽을 수 있습니다 입력 원인 키를 입력해도 읽을 수 있습니다 –

+0

글자를 읽고, 글을 쓰고, 줄 바꿈을 읽고, 글을 쓰는 것입니다. – PSkocik

+0

이 글은 중복되었지만, 무엇을 찾을 수 없습니까? –

답변

1

당신이 번호를 눌러 PLUS 입력하고 해당하는 다음 호출

#include <stdio.h> 

int main(void) { 
    char c = 'A'; 
    while (c != ',') { 
    printf("Input a character:"); 
    if (scanf("%c", &c) != 1) { 
     return 0; // we stop if user don't input anything 
    } 
    if (c >= '0' && c <= '9') { 
     printf("%d\n", (int)c); // by the way did you want (int)(c - '0') ? 
    } else { 
     printf("enter a number ! you enter %d\n", c); 
    } 
    } 
} 
+1

'% c' 이전의 공간은 충분해야합니다. = >>' "% c"' – Michi