我正在尝试扫描字符串,它的最大长度需要为10.
struct Person{
char name[MAX];
float score;
date_t dafe;
};
//MAX = 11
我正在使用一个菜单,当输入的字符串少于10个字符时,它工作正常,但是当字符串较长时,它会遍历菜单并将其余字符串(任何超过10个字符)存储在名称值中阵列中的下一个学生(创建一个新学生)。我究竟做错了什么?这是用scanf限制字符串的正确方法吗?
while(choice != 6){
printMenu();
scanf("%d", &choice);
switch(choice){
case 1 :
if(Size < MAX){
printf("Adding Person \n");
personList[Size] = addPerson();
Size++;
}else{
printf("Reached maximum size \n");
}
break;
case 2 : //Other Options
Person_t addperson(void){
person_t tempperson;
printf("Enter name> \n");
scanf("%10s", tempPerson.name);
printf("Enter date: day> \n");
scanf("%d", &person.date.day);
//more values
return tempPerson;
}