データ管理プログラムを作っているんですが、初心者なもので困っています…。
学校の課題で上手くいかずに困っています。キーボードから入力したものを構造体に納める機能を関数で実装するんですが、1番目の構造体に入力した後、次の構造体に入力できません。下にその関数の部分を載せるので、どのように直したらいいか、また上手くいかなかった原因を教えてくだい。
typedef struct _Music {
char title[1024];
char artist[1024];
int year, month, day, star;
} Music;
void register_record(Music *mus, int *current_num_ptr);
int main(void)
{
Music musiclist[200];
int num_record = 0;
char buf[128], n;
while (1) {
printf("[1]Registration [q|Q]quit\nEnter Number> ");
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%c", &n);
if (n == 'q' || n == 'Q') {
break;
} else if (n == '1') {
printf("Registration\n");
register_record(musiclist, &num_record);
num_record = num_record + 1;
} else {
printf("wrong number\n");
}
}
return 0;
}
void register_record(Music *mus, int *current_num_ptr)
{
char tem[1024];
int x;
printf("Title> ");
scanf("%s", tem);
strcpy(mus->title, tem);
printf("Artist> ");
scanf("%s", tem);
strcpy(mus->artist, tem);
printf("Date(year)> ");
scanf("%d", &x);
mus->year = x;
printf("Date(month)> ");
scanf("%d", &x);
mus->month = x;
printf("Date(day)> ");
scanf("%d", &x);
mus->day = x;
printf("My Rate> ");
scanf("%d", &x);
mus->star = x;
printf("---Complete registration!!---\n");
printf("No.%d Title:%s Artist:%s Date:%d/%d/%d My Rate:%d\n", current_num_ptr, mus->title, mus->artist, mus->year, mus->month, mus->day, mus->star);
}
お礼
すいません、確かにそうでした。 ありがとうございました