输入所有数据后立即出现错误。

Bug right after entering all the data.

我正在用 C 编写一个小程序来记录一个人的姓氏、名字和年龄。我正在尝试使用结构来做到这一点 一旦我添加了它的错误年龄。

我试过使用 fscanf fgets 等..但没有成功

#include <stdio.h>
#include <printf.h>
#include "personne.h"


int main() {


    Pers user1;

    printf("What's your given name ?");
    scanf("%s",user1.givenname);
    printf("What's your last name ?");
    scanf("%s",user1.lastname);
    printf("What's your age ?");
    scanf("%d",user1.age);

    printf("Your name is %s %s and you're %d years old",user1.givenname,user1.lastname,user1.age);


    return 0;
}


======================================================================

这是我的头文件

#ifndef TABLEAU_DE_TYPEPERSONNE_PERSONNE_H
#define TABLEAU_DE_TYPEPERSONNE_PERSONNE_H

#endif //TABLEAU_DE_TYPEPERSONNE_PERSONNE_H


typedef struct Personne Pers;

struct Personne{
    int age;
    char lastname[100];
    char givenname[100];
    char address[1000];


};

通常在最后,它应该打印信息。

为了使 scanf 正确填充值,必须将该值的地址传递给函数,在您的示例中,所有名称都是数组,因此当您传递它们的名称时,您传递的是指针,但是年龄字段不是数组,所以你应该用 & 运算符传递地址,所以只需更改为这个。

scanf("%d", &user1.age)