我正在编写一个小程序,其中包含一个使用以下结构组织的数据库:
typedef struct {
char fname[20];
char lname[20];
char phone[12];
char address[50];
} database;
当我要求输入一个条目的所有值时,我按如下方式进行操作(程序开头的var save为0):
if(option == 1)
{
printf("\nPlease input each of the following parameters separated by space: \n");
printf("Firstname Lastname Phone Address: \n");
scanf("%s %s %s %s", &list[save].fname, &list[save].lname, &list[save].phone, &list[save].address);
save++;
printf("\n\n!!!!! DONE !!!!!\n\n");
}
问题是,我希望最后一个字符串输入(地址)能够存储带有空格的完整句子。当我输入类似Andres Guerra +15551234 55555 AB Ave.,UT的东西时。它只会保存在列表中[保存]。地址55555,其余的东西保留存储以供下次输入,导致存储差异。
如何在地址struct元素中保存包含空格的完整句子?
注意:我还尝试使用地址单独制作%s的额外scanf,但它也不起作用。
如果我使用Country而不是Address,程序运行正常。