반응형

 

아래 코드는 fgets함수로 키보드로 부터 입력이 들어올 때, 모든 버퍼를 싹 비워버리는 함수다.

#include <stdio.h>

void ClearLineFromReadBuffer(void);

int main()
{
	//	ex) 880808'\0' 총 7개 배열 필요.
	char perID[7];							
	char name[10];

	fputs("주민번호 앞 6자리: ", stdout);  //  모니터에 출력
	fgets(perID, sizeof(perID), stdin);   //  최대 크기 7 byte를 키보드로 부터 입력 받음.

	/************/
	ClearLineFromReadBuffer();            //  입력 버퍼를 비우기. 그냥 읽어들임. 반환없이.
	/************/

	fputs("이름 입력: ", stdout);          //  모니터에 출력
	fgets(name, sizeof(name), stdin);      //  최대 크기 10 byte를 키보드로 부터 입력 받음.

	printf("주민번호: %s \n", perID);
	printf("이름: %s \n", name);

	return 0;
}

void ClearLineFromReadBuffer(void)
{
	while (getchar() != '\n');        //  문자열의 끝 '엔터키'가 들어올때까지 계속 Read가 되어짐. 즉, 버퍼의 값을 사용하지 않고 그냥 버려짐.
}
반응형

(실행)

 

* 출력 버퍼를 비우는 함수 fflush 는 아래 참고.

https://ansan-survivor.tistory.com/1324

 

[C언어] 문자열 출력 버퍼(buffer) 비우는 함수 fflush() 함수

입력한 버퍼를 비우는 방법에 대해서는 아래 설명했다. https://ansan-survivor.tistory.com/1322 [C언어] 문자열 입력 버퍼(buffer) 비우기 함수 아래 코드는 fgets함수로 키보드로 부터 입력이 들어올 때, 모든

ansan-survivor.tistory.com

 

반응형

+ Recent posts