Я пытаюсь получить ввод от пользователя для строк в структуре. Однако при попытке получить входные данные с использованием scanf, очевидно, две строки сохраняются в первом символьном массиве структуры. Ввод для строк дается через пробел. Вот почему я пытаюсь сделать это с помощью scanf, поскольку я не знаю, возможно ли получить ввод, разделенный пробелами, используя fgets.
Я также пытался изменить члены структуры на указатели на символьные массивы и выделить память для строк с помощью malloc, но после ввода продолжал выдавать ошибку seg.
#define MAXID 6
#define FIRST_NAME_LENGTH 20
#define LAST_NAME_LENGTH 20
struct student
{
char ID[MAXID];
char f_name[FIRST_NAME_LENGTH];
char s_name[LAST_NAME_LENGTH];
int points[MAXROUNDS];
};
struct student studentinfo;
.......
void student_info(struct student *studentinfo)
{
printf("Give the students ID, surname and firstname.\n");
scanf("%s%s%s", studentinfo->ID, studentinfo->s_name, studentinfo->f_name);
}
printf("Info of the last student added: %s %s %s\n", studentinfo.ID, studentinfo.s_name, studentinfo.f_name);
Таким образом, при вводе «666666 boi bobby» выдается «666666bobby boi bobby». Что делать?