C언어 \ C++
[C언어] 문자열 입력 버퍼(buffer) 비우기 함수
안산드레아스
2022. 2. 25. 21:02
반응형
아래 코드는 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
반응형