fflush(stdin) 질문이요 ㅠㅠ
네코
2023.04.01
이함수에서 빨간색 글씨 fflush(stdin);를빼면 왜 주소값 입력이 안되고 그냥 넘어가버릴까요?ㅜㅜ
빼고 되는 방법이 없을까요?
void JoinMember(Member member[], int * pCount)
{
FILE * fp;
printf(이름 입력 : );
scanf(%s, member[*pCount].name);
fflush(stdin);
printf(전화번호 입력 : );
scanf(%s, member[*pCount].tel);
fflush(stdin);
printf(주소 입력 : );
gets(member[*pCount].address);
fflush(stdin);
fp = fopen(member.txt, a+);
fprintf(fp, %s %s %s\n, member[*pCount].name, member[*pCount].tel, member[*pCount].address);
fclose(fp);
(*pCount)++;
printf(회원이 등록됬습니다.\n);
}
-
갅지삘여우
무슨값이든 stdin을 통해서 값을 받게 되면
맨 마지막에 엔터값이 들어가게 됩니다.
그렇게 되면 다른 문자를 받을때 버퍼에 있던 엔터값을 쓰게 됩니다.
표현이 이상하지만 이러한 이유 일것 같습니다.