Ошибка сразу после ввода всех данных. - PullRequest
0 голосов
/ 26 декабря 2018

Я пишу небольшую программу на 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];


};

обычно в конце, он должен напечатать информацию.

1 Ответ

0 голосов
/ 26 декабря 2018

Чтобы Scanf правильно заполнил значение, адрес этого значения должен быть передан функции, в случае вашего примера все имена являются массивами, поэтому, когда вы передаете их имя, вы передаете указатель, но поле ageне массив, поэтому вы должны передать адрес с & оператором, так что просто измените на это.

scanf("%d", &user1.age)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...