使用结构与c程序联系经理
struct contact { char name[20],email[20]; int hpnum; }add; int option; int main (void) { system("cls"); printf("==========Welcome to Jeffery's Contact System Management==========\n"); printf("\t\t\tContact System Main Menu\n"); printf("[1] Create a New Contact\n"); printf("[2] Modified Existing Contact\n"); printf("[3] Delete Existing Contact\n"); printf("[4] Search Existing Contact\n"); printf("[5] Exit\n"); printf("Please enter one of your option.\n"); scanf("%d",option); switch(option) { //add new contact case 1: printf("Contact Name: "); scanf("%s",&add.name); printf("\nHandphone Number: "); scanf("%d",&add.hpnum); printf("\nE-mail: "); scanf("%s",add.email); break; } getch(); }
这个编码有什么问题? 我可以运行它,但一旦选择否。 1,出现了错误。 如果我的编码错误,请通知我。 我还是初学者,希望你们都能帮助我。
您忘记在选项变量之前添加ampersand &
。
scanf("%d",option);
应该
scanf("%d",&option);
option是一个int,所以这里需要&
在scanf中。
第二: &ampersand需要在add.name之前删除
scanf("%s",&add.name)
应该
scanf("%s",add.name)
add.name是一个char数组,我们不需要&
%s
添加fflush(stdout);
这两个陈述之间:
printf("Contact Name: "); scanf("%s",&add.name);
与其他不以\n
字符结尾的printf
语句相同。
并且对于信息, s
转换说明符期望指向char
的指针,因此不要使用&
运算符,只需调用scanf("%s", add.name)
。