본문 바로가기
책 정리

scanf 연속으로 사용할때 오류

by ocean20 2016. 11. 5.
1
2
3
4
5
6
7
int a; 
char b;
scanf("%d"&a); 
scanf("%c"&b); 
printf("%d", a); 
printf("%c", b);
 
cs

처럼 연속사용할때 오류가 생긴다.


a의 값을 입력을 한 후에 enter 키를 누르면


컴퓨터는 enter를 키 입력값으로 받아들이기때문에, 버퍼에 엔터키값이 추가된다.


두번째 scanf는 enter키를 입력받았다고 생각하기에,  두번째 scanf는 동작하지 않는다.



해결법 1. 

fflush(stdin); // 버퍼를 비워준다.


해결법 2

두번째 scanf(" %c") %c앞에 공백을 넣어 해결한다.

->이렇게 해주면 white space를 구분자로 간주한다고 한다.

댓글