学习C基础-结构函数:

pinkon5k  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(185)

我现在正在尝试从一个结构体函数创建一个程序,如下所示。我不想直接从程序中打印一行,而是想修改程序,打印一条消息,要求用户输入一个人的信息,并按照结构体的指示显示出来。
我不想做“struct person p”并插入信息,而是希望它作为scanf输入。

#include <stdio.h>

typedef struct {
    int day, month, year;
} DATA;
typedef struct person {
    char name[100];
    int age;
    float salary;
    DATA birth;
} PERSON;

void Mostrar(struct person x){
    printf("name: %s\n",x.name);
    printf("age: %d\n",x.age);
    printf("Salário: %f\n",x.salary);
    printf("Dt.birth: %d/%d/%d\n",x.birth.day, x.birth.month, x.birth.year);
}

int main(){
    struct person p = {"Carlos", 23, 12345, {23,5,1954}};
    Mostrar(p);
}

谢谢你们的帮助!

r1zk6ea1

r1zk6ea11#

只需使用scanf

PERSON getPerson(void)
{
    PERSON person;
    if(!fgets(person.name, sizeof(person.name), stdin)) { /* error handling */} //you can also remove \n at the end if you need to
    if(scanf("%d %f", &person.age, &person.salary) != 2) { /* error handling */}
    if(scanf("%d %d %d", &person.birth.day, &person.birth.month, &person.birth.year) != 3) { /* error handling */}
    return person;
}

相关问题