C语言问题:运行如下程序时,系统跳过了对gets(p->name)的执行,即只执行了下面三个,求解。
p=(TeleBook*)malloc(sizeof(TeleBook));puts("请分行依次键入学生的姓名,性别,手机号码,电子信箱...\n");gets(p->...
p=(TeleBook *)malloc(sizeof(TeleBook)); puts("请分行依次键入学生的姓名,性别,手机号码,电子信箱...\n"); gets(p->name); gets(p->sex); gets(p->phonenum); gets(p->email); head=Insert(head,p); printf("姓名\t\t%s\n性别\t\t%s\n",p->name,p->sex); printf("手机号码\t\t%s\n电子邮箱\t\t%s\n",p->phonenum,p->email);
展开
4个回答
展开全部
如下:在 gets(p->name);前增加fflush(stdin);就好了!!!
p=(TeleBook *)malloc(sizeof(TeleBook));
puts("请分行依次键入学生的姓名,性别,手机号码,电子信箱...\n");
fflush(stdin);
gets(p->name);
gets(p->sex);
gets(p->phonenum);
gets(p->email);
head=Insert(head,p);
printf("姓名\t\t%s\n性别\t\t%s\n",p->name,p->sex);
printf("手机号码\t\t%s\n电子邮箱\t\t%s\n",p->phonenum,p->email);
p=(TeleBook *)malloc(sizeof(TeleBook));
puts("请分行依次键入学生的姓名,性别,手机号码,电子信箱...\n");
fflush(stdin);
gets(p->name);
gets(p->sex);
gets(p->phonenum);
gets(p->email);
head=Insert(head,p);
printf("姓名\t\t%s\n性别\t\t%s\n",p->name,p->sex);
printf("手机号码\t\t%s\n电子邮箱\t\t%s\n",p->phonenum,p->email);
更多追问追答
追答
如下,你可以在姓名和性别之后添加适当数量的空格,直到调整到满足要求就行了
printf("姓名 \t\t%s\n性别 \t\t%s\n",p->name,p->sex);
printf("手机号码 \t\t%s\n电子邮箱\t\t%s\n",p->phonenum,p->email);
展开全部
#include<stdio.h>
#include<stdlib.h>
struct TeleBook
{
char name[10];
char sex[10];
char phonenum[10];
char email[20];
};
void main()
{
TeleBook *p=(TeleBook *)malloc(sizeof(TeleBook));
puts("请分行依次键入学生的姓名,性别,手机号码,电子信箱...\n");
gets(p->name);
gets(p->sex);
gets(p->phonenum);
gets(p->email);
//head=Insert(head,p);
printf("姓名\t\t%s\n性别\t\t%s\n",p->name,p->sex);
printf("手机号码\t\t%s\n电子邮箱\t\t%s\n",p->phonenum,p->email);
}
您好 因为您的代码是一部分 所以我尝试恢复了一下 发现就您贴上来的这段代码是没有问题的 要么你再多检查下?不行就step单步调试下?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把 puts("请分行依次键入学生的姓名,性别,手机号码,电子信箱...\n");里面的\n去掉试试。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
TeleBook 中name 的定义是一个指针还是一个数组, 如果是数据应该可正常工作的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询