단순 구조체 코딩인데, 도와주세요!ㅠㅠ
희미해
제가 다시 C공부를 하면서 이것저것 짜보고있습니다.
구조체를 하기위해 단순히 사원정보를 입력받아서 출력하는 코딩을 했어요
에러없이 잘 돌아가는가 싶더니
두번째 사람을 받을때 출력부분이 첫번째 질문과 두번째 질문이 한꺼번에 나오네요.(정보를 받아들이지도 않고 바로 두번째 질문이 나와버려요)
고수님들, 도와주세요!ㅠㅠ
************************
//구조체로 사원정보 받기.
//오류: 두번째 사람 정보 받을때 첫번째 두번째 질문이 한꺼번에 출력됨.
#include stdio.h
struct person{
char name[20];
char E_mail[30];
int age;
};
int i, j;
main()
{
struct person employee[10];
i = 0;
start:
printf(Enter your name.\n); //첫번째 질문
gets(employee[i].name);
printf(Enter your E-mail address.\n); // 두번째 질문
gets(employee[i].E_mail);
printf(Enter your age.\n); // 세번째 질문
scanf(%d, &employee[i].age);
//출력부분
printf(Your name is %s.\n, employee[i].name);
printf(Your E-mail address is %s.\n, employee[i].E_mail);
printf(You are %d years old.\n, employee[i].age);
printf(Do you want to put more information?(Yes- 1, No-0): ); //두번째 정보 입력여부 질문
scanf(%d, &j);
printf(\n);
if(j == 1)
{
i++;
if(i == 10)
printf(Data is full\n);
else
goto start;
}
if(j == 0)
{
printf(Thank you.\n);
return 0;
}
else
{
printf(Error);
return 0;
}
}
****************************
-
옆집꼬마야
초보들에게 비표준 fflush(stdin);이나 가르치는 찌질 인생을 보니 불쌍하기도 합니다.
-
연꽃
구조체 배우고파 ㅋ
-
반월
fflush(stdin) 은 현재 입력버퍼에 있는 것을 지운다는 뜻이고, fflush(stdout)은 현재 출력버퍼에 있는 것은 모니터로 날린다(출력) 입니다.
-
CreamyGirl
fflush(stdin)은 입력 버퍼를 지운다는 뜻입니다라고 알고 있는데, 이 버퍼라는게 뭘 뜻하는 건지는 모르겠네요. 버퍼 종류에는 stdin(키보드), stdout(모니터), stderr(모니터) 가 있다는 정도.
-
빈길
앗..되네요! 감사합니다.ㅠㅠ fflush(stdin); 에 관한건 공부해볼께요!^^
-
깜찏한그1녀
i++ 하는 곳 밑에다가 fflush(stdin); 이걸 추가하시면 됩니다. 이걸 해줘야 기존의 입력 버퍼를 지우게 됩니다.
자세한건 검색을 해보시면 나옵니다