gpt4 book ai didi

c - 格式 '_' 需要类型为 '__' 的参数,但参数 2 的类型为 '__' 。 C编程,我是初学者

转载 作者:行者123 更新时间:2023-11-30 14:51:13 27 4
gpt4 key购买 nike

这是我使用以下成员定义的结构:

struct id{
char name[32];
int age;
float iq;
};

这是其中一个函数的打印语句:

printf("Enter your age: ");
scanf("%d",p->age);

printf("Enter your iq: ");
scanf("%f",p->iq);

问题是,代码编译时出现 2 个警告:

format '%d' expects argument of type 'int *', but argument 2 has type 
'int'.
format '%f' expects argument of type 'float *', but argument 2 has type
'double'.

构建/运行的输出返回:

segmentation failed(core dumped).

任何帮助将不胜感激。

有人可以远程指导我吗?成为 C 编程天才? :p

这是我程序的完整源代码,无法理解为什么它不能按照我想要的方式工作。我找到了解决方法,但我想了解警告消息背后的概念。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

/*declaring struct as global item*/
struct id{
char name[32];
int age;
float iq;
};

/*prototyping*/
struct id *fAllocate(void);
void fFetch(struct id *p);
void fShow(struct id *p);

int main()
{
struct id *author; //declaring the var of_type struct id

/*allocate struct - fAllocate()_function*/
author = fAllocate();

/*fetch structure/populate - fFetch()_function*/
fFetch(author);

/*show struct - fShow()_function*/
fShow(author);

return 0;
}
/*fAllocate()_function*/
struct id *fAllocate(void){
struct id *p;
p = (struct id *)malloc(sizeof(struct id));
if(p == NULL)
{
printf("Memory Unavailable!");
exit(1);
}
else
{
return(p);
}
return;
}
/*fFetch()_fucntion*/
void fFetch(struct id *p){
//declaring var to store scanf values
/*
char *n;
int i;
float f;
*/
printf("Enter your name: ");
scanf("%s",p->name //&n);
//strcpy(p->name,n);

printf("Enter your age: ");
scanf("%d",p->age //&i);
//p->age = i;

printf("Enter your iq: ");
scanf("%f",p->iq //&f);
//p->iq = f;

return;
}
/*fShow()_function*/
void fShow(struct id *p){
printf("Author %s is %d years old!\n",
p->name,
p->age);
printf("%s has an iq of %.2f!\n",
p->name,
p->iq);
return;
}

最佳答案

scanf() 需要能够存储它扫描的数据。因此它需要地址,如下所示:

scanf("%d", &p->age);

scanf("%f", &p->iq);

POSIX documentation is here.

关于c - 格式 '_' 需要类型为 '__' 的参数,但参数 2 的类型为 '__' 。 C编程,我是初学者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48477404/

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