Tuuna Computer Science

[C 언어] 입력 버퍼 지우기 본문

C language

[C 언어] 입력 버퍼 지우기

GuTTe 2018. 4. 24. 21:47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
 
void clearna(void)
{
    while(getchar()!='\n'); //    \n이 나올때 까지 읽어들인다  
}
 
int main(void)
{
    char perid[7];
    char name[10];
    
    fputs("주민번호 앞 6자리 입력: ", stdout);
    fgets(perid, sizeof(perid), stdin); //fgets함수는 \n을 만날 때 까지 읽어들이는 함수이다.
    clearna(); //입력버퍼 지우기!
    /*getchar(); = 이것도 가능 */
/*배열의 크기가 7이므로 6자리 입력 + NULL \n이 밀려 버퍼에 남아 있기 때문에 이것만 읽고 넘어가 버리기 때문에 반복문을 통해 이것까지 읽어들이는 것이다! */
    fputs("이름 입력: ",stdout);
    fgets(name, sizeof(name), stdin);
    
    printf("주민번호 : %s\n", perid);
    printf("이름 : %s\n", name);
    
    return 0;
}  
 
 
 
cs


Comments