C :: 입력버퍼 비우기

J·2024년 5월 23일

C언어

목록 보기
13/18
post-thumbnail

출력과 입력 :: printf(), scanf()
문자, 문자열 입력 :: getchar(char), gets(char[])

버퍼

: scanf()와 같은 입력문을 통해, 입력값들을 임시로 저장하는 공간
-> "임시저장"이기 때문에 입력이 끝남과 동시에 소멸됨.

버퍼 문제 발생

%c 쪽에 공백값('\0')이나 줄바꿈('\n)값이 들어가는 경우 충돌 발생 시
=> 값들을 구분하려다가, 입력 충돌이 발생할 수도 있다.
=> 한 문자 입력하고 [엔터]키를 누르면 [엔터]키도 한 문자로 받기 때문이다.

버퍼 문제 해결

: 버퍼를 비워주는 역할 (입력 충돌예방)

rewind(stdin); 
getchar();

ex.

	int num;
	char ch, c;
    
	scanf("%d %c", &num, &ch);
	rewind(stdin);
	scanf("%c", &c);				// 입력값을 떼어내서 입력시키면 해결 !
	printf("%d %c %c", num, ch, c);
profile
나야

0개의 댓글