struct test
{
char name[20];
int age;
};
void bufcl(void)
{
while (getchar() != '\0');
}
int main()
{
struct test a[3];
int i;
for (i = 0; i < 3; i++)
{
puts("이름 입력: ");;
fgets(a[i].name,sizeof(a[i].name),stdin);
bufcl();
puts("나이 입력: ");
scanf_s("%d", &a[i].age);
}
for (i = 0; i < 3; i++)
{
printf("이름: %s 나이: %d \n", a[i].name, a[i].age);
}
return 0;
}
이거 짯는데 입력버퍼 비우는함수안만들고하다가 이상하게되서 비운느함수만들고 이름입력뒤에 함수불러오게했는데 이름입력하면 나이입력이 안나옴 그리고 그냥 계속 문자나 숫자 입력할수있음 뭐가문제임? 그리고 scanf에 _s 왜붙여야됨? 원래잘됬엇는데 갑자기 지랄임
리얼이네 왜사라지지 디시규칙임? 근데그냥 fflush(stdin) 쓰면안됨? 윤성우가 stdout만 쓰라는데
fflush(stdin); // 이게 2015이후 msc 에서 안되는 버그가 있다고 한다...
됬->됐 (되어 = 돼임) [리듬 맞춤법 봇♬]
되서->돼서 (되어 = 돼임) [리듬 맞춤법 봇♬]
fflush(stdin)은 원래 undefined behavior일 걸... 기본적으로 쓰면 안 됨