반응형
아래 코드는 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언어 \ C++' 카테고리의 다른 글
[C언어] 문자열(string)의 길이를 보는 함수 (strlen 함수) (0) | 2022.02.27 |
---|---|
[C언어] 문자열 출력 버퍼(buffer) 비우는 함수 fflush() 함수 (0) | 2022.02.27 |
[C언어] 문자열(string) 입출력 (puts, fputs, gets, fgets) 사용법 (0) | 2022.02.25 |
[C언어] 파일 읽기 쓰기(read, write) 추가하기 모드 종류 (wt, rb, a+t) (0) | 2022.02.22 |
[C언어] C언어에서 EOF란? (C언어 파일 종료 코드) (2) | 2022.02.22 |