0
C에서 문자 입력 기능을 실험하고 있습니다. 다음은 실험을 위해 getch 및 getche 함수 호출을 교환하는 프로그램입니다. 나는 getch()와 함께 프로그램을 실행하면getche를 입력하면 화면이 지워집니다.
#include <stdio.h>
#include <conio.h>
#define MAX_CHARS 255
int main(){
//getche experiments
char buffer[MAX_CHARS+1],ch;
int x = 0;
while(x<MAX_CHARS&&(ch=getch())!='\r'){//relacing getch here with getche
buffer[x++]=ch;
putchar(ch);
}
buffer[x]='\0';
printf("%s",buffer);
return 0;
}
- , 나는 최대한 빨리 ( putchar 덕분에) 키보드를 통해 입력으로 인쇄 된 각 문자 를 볼 수 있습니다, 전체 라인은 내가 한 번 눌러 입력 (printf 덕분에 마침내). 그래서 괜찮습니다.
- 나는 getche와 getch에게 내가 I이었다 내가 두 번 빨리 (getche는 표준 출력 문자를 반향 때문에) 내가 입력 로 인쇄 입력 한 문자의 각을 얻을 후 마지막에 선 를 인쇄 할 것으로 예상 유일한 차이를 교체 할 때 Enter 키를 누릅니다. 그러나 Enter 키를 누르는 즉시 전체 화면 입력 이 지워지고 줄이 인쇄됩니다.
마지막으로 인쇄하기 전에 화면을 지우는 이유는 무엇입니까?
는 당신이 우리가getche
에 대한 설명서를 말한다 모르고 알 수있는 방법은 없습니다
'getch'와'getche' (및 헤더 자체)는 모두 비표준이므로 사용중인 컴파일러와 환경을 지정해야합니다. Turbo C와 같은 고대의 것 같습니다. –
@David Scwartz, @ Paul R - Microsoft Visual Studio 8 컴파일러를 Windows XP에서 사용하고 있습니다. 32 비트 플랫폼 – ZoomIn
OK - 이것을 반영하도록 태그를 수정했습니다. 코드를 이식 할 수 있도록하려면 표준 라이브러리 함수를 사용하고과 같은 표준이 아닌 레거시 API는 사용하지 않는 것이 좋습니다. –