C 如何打印int结构成员
我的程序要求客户端输入name,每次int num增加1。我的问题是当我打印信息时,int num显示数千!我想它显示了地址C 如何打印int结构成员,c,struct,printf,member,C,Struct,Printf,Member,我的程序要求客户端输入name,每次int num增加1。我的问题是当我打印信息时,int num显示数千!我想它显示了地址 typedef struct myphonebook { int num; char name[31]; char address[101]; char cellphone[11]; char email[21]; } Myphonebooktype; Myphonebooktype *pb = NULL; for(i = ad
typedef struct myphonebook {
int num;
char name[31];
char address[101];
char cellphone[11];
char email[21];
} Myphonebooktype;
Myphonebooktype *pb = NULL;
for(i = addcounter, cc = addcounter + 1; i < 21; i++, cc++) {
pb = (Myphonebooktype*)realloc(pb,cc*sizeof(Myphonebooktype));
pb[0].num = 1;
printf("Add a contact\n");
printf("Contact no. %d\nEnter name);
gets(pb[i].name);
pb[i].num++;
}
我将pb[0].num(第一个)初始化为1,并使用pb[I].num++自动添加,然后打印,但打印时显示的不是1或2,而是7000多个字符。格式字符串中缺少字符串标记。试试这个:
printf("Contact no %d\nName: %s", pb[i].num, pb[i].name);
此外,正如@Oli Charlesworth所评论的,您不会初始化所有pb[].num
变量,只初始化第一个变量。所以换掉这个
pb[0].num = 1;
用这个
pb[i].num = i;
格式字符串中缺少字符串标记。试试这个:
printf("Contact no %d\nName: %s", pb[i].num, pb[i].name);
此外,正如@Oli Charlesworth所评论的,您不会初始化所有pb[].num
变量,只初始化第一个变量。所以换掉这个
pb[0].num = 1;
用这个
pb[i].num = i;
我将把其他问题抛在脑后,集中讨论你的主要问题 代码中没有“字符串”输出,“%d”表示“输出一个整数”,但我没有看到任何“%s”表示“输出一个字符串” 这是正确的
printf("Contact no %d\nName: %s", pb[i].num, pb[i].name);
即使修复了,我也不认为任何事情会起作用:您没有初始化
pb[I].num
我将忽略其他问题,专注于您的主要问题
代码中没有“字符串”输出,“%d”表示“输出一个整数”,但我没有看到任何“%s”表示“输出一个字符串”
这是正确的
printf("Contact no %d\nName: %s", pb[i].num, pb[i].name);
即使修复了,我也不认为任何事情会起作用:你没有初始化
pb[I].num
你在哪里初始化pb[I].num
?你在哪里初始化pb[I].num
?