2013-10-23 4 views
-2

이 프로그램을 실행하면 터미널에 이상한 문자가 인쇄됩니다. 누군가 그게 뭔지 말해 줄 수 있어요?C 프로그램이 이상한 문자를 인쇄합니다.

int main(){ 
    char x=1; 
    printf("%c\n",x); 
    return 0; 
} 
+2

무엇이 인쇄되어야한다고 생각하십니까? – Kevin

+0

ASCII 코드 1은 머리글이 시작되는 문자입니다 (인쇄 할 수 없거나 stdout에서 이상하게 보임). 다른 사람들처럼 '1'을 원한다고 생각합니다. – birryree

답변

3

x에 1 (문자의 ASCII 값)을 지정했기 때문입니다. '1'x으로 지정하십시오. 출력은 1이됩니다.

char x = '1'; 
printf("%c\n",x); 
0

문자는 일반적으로 사용하여 지정해야한다 (당신이 EBCDIC 플랫폼이나 무언가에없는 것을 해당 플랫폼에 대한 합리적인 가정을 만들기) ASCII 인코딩을 사용하는 것이 아닙니다. 예 :

char x = 'A'; 
    printf("%c\n", x); 

터미널에 'A'문자가 인쇄됩니다. 문자에 1의 ASCII 색인을 부여하면 START OF HEADING 문자 (SOH)가 지정됩니다. 당신이 'A'또는 '1'을 찾는다면, 그것은 다음과 같습니다

char x = 65; // x = 'A' 
    char y = '1'; // y = '1' 

을하지만, 내가 말했듯이,이 때문에 번호를 할당하는 것은 아주 나쁜 방법입니다, 매우 어색하고 읽을 ASCII 암기가 필요합니다.

당신은에서 ASCII 테이블을 찾을 수 있습니다 http://www.asciitable.com/

0

그것은 당신이 출력으로 원하는에 따라 달라집니다. 당신의 코드가 뭔가 이상한 결과를 출력한다고 생각한다면 분명히 '1'을 출력으로 원할 것입니다. 그리고 그것을 위해, 당신은

char x = '1'; 

그게 전부에 문

char x = 1; 

교체해야합니다! 당신의 문제는 해결 될 것입니다!

관련 문제