2016-11-07 1 views
0

의 값을 표시해야하는 경우 :10 진수 값을 저장, 그것은 27

#include <stdio.h> 
#include <stdlib.h> 

void main() 
{ 
    int ESC; 
    ESC = getchar(); 
    printf("\n%d", ESC); 
} 

그것은 '10'의 값하지만, ASCII 표를 인쇄 상태 값은 '27'이어야합니다. 나는 scanf를 사용하여 이것을 시도했지만 동일한 결과를 얻었다. 무슨 일 이니?

+3

ESC는'getchar()'에 의해 읽히지 않았습니다. ESC 키를 누른 후 RETURN을 누를 때 줄 바꿈이 표시됩니다. –

+0

아, 어떻게 'ESC'문자를 읽을 수 있습니까? –

+1

'ESC'의 타입은'int'이어야합니다. 왜냐하면'getchar()'는'int'를 반환하기 때문입니다. 'ESC'키를 누른 다음 Enter 키를 누릅니다. 그것은 '반환'전에 'ESC'가 읽혀 지도록해야합니다. – usr

답변

0

라이브러리 #include <conio.h>을 사용한 다음 getch() 함수를 사용하면 완벽하게 작동한다는 것을 발견했습니다.

#include <stdio.h> 
#include <conio.h> 

void main() 
{ 
    int ESC; 
    ESC = getch(); 
    printf("%d", ESC); 
} 
+0

Windows와 MSVC의 경우 원래 프로그램은'Esc'가 입력되었지만 흥미롭게도'10'을 반환합니다 'Ctrl + [''''''''''''''''''''''''''일치해야하는''Ctrl + [' 그래서 내 추측은 * get *에 대한 MS man 페이지에는 아무 것도 없지만 * key *가 결과 값보다는 무시된다는 것입니다. –

+0

당신은'conio.h '를 사용하지 말아야합니다. 볼랜드의 DOS 용 컴파일러와 같은 아주 오래된 컴파일러의 비표준 헤더입니다. 20 년 동안 쓸모없는 컴파일러에서 비표준 기능을 배우는 것은별로 유용하지 않습니다. – DUman

관련 문제