C/C++ 언어 getchar() 함수 버퍼 문제
<버퍼 문제 코드>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <stdio.h> int main() { char ch1, ch2; printf("Enter a character ? "); ch1 = getchar(); printf("ch1 : %c \n",ch1); printf("Enter a character ? "); ch2 = getchar(); printf("ch2 : %c \n",ch2); printf("end... \n"); return 0; } | cs |
키보드 입력을 한번만 받아도 종료되는 문제가 발생
<버퍼 문제 해결 코드 1>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <stdio.h> int main() { char ch1, ch2; printf("Enter a character ? "); ch1 = getchar(); printf("ch1 : %c \n",ch1); getchar(); printf("Enter a character ? "); ch2 = getchar(); printf("ch2 : %c \n",ch2); printf("end... \n"); return 0; } | cs |
getchar() 함수를 호출하여 버퍼를 비워주는 방법을 사용
<버퍼 문제 해결 코드 2>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <stdio.h> int main() { char ch1, ch2; printf("Enter a character ? "); ch1 = getchar(); printf("ch1 : %c \n",ch1); fflush(stdin); printf("Enter a character ? "); ch2 = getchar(); printf("ch2 : %c \n",ch2); printf("end... \n"); return 0; } | cs |
fflush() 함수로 stdin 표준 입력을 초기화 하는 방법
'C,C++ > 예제' 카테고리의 다른 글
| C/C++ 언어 scanf() 버퍼 문제 (0) | 2016.02.02 |
|---|---|
| C/C++ 언어 scanf() 활용 (0) | 2016.02.02 |
| C/C++ 언어 키보드 입력 버퍼 확인 _kbhit() (0) | 2016.02.02 |
| C/C++ 언어 링크드 리스트를 이용한 스택에서의 push와 pop 예제 (0) | 2016.01.29 |
| C/C++ 언어 키보드에서 입력한 문자의 ASCII 코드 값의 2진수 출력 (0) | 2016.01.29 |