gpt4 book ai didi

c - 如何打印一个 int struct 成员

转载 作者:太空宇宙 更新时间:2023-11-04 05:59:29 27 4
gpt4 key购买 nike

我的程序要求客户端输入名称,每次 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 = 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++;
}

这是我的打印功能

printf("Contact no %d\nName:%s", pb[i].num, pb[i].name);

我将第一个 pb[0].num 初始化为一个,并使用 pb[i].num++ 自动添加,然后打印,但是当我打印时它显示的不是 1 或 2,而是 7thousand 加上。

最佳答案

格式字符串中缺少字符串标记。试试这个:

printf("Contact no %d\nName: %s", pb[i].num, pb[i].name);

此外,正如@Oli Charlesworth 评论的那样,您不会初始化所有的 pb[].num 变量,只有第一个。所以替换这个

pb[0].num = 1;

有了这个

pb[i].num = i;

关于c - 如何打印一个 int struct 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644640/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com