从函数内部更改结构

时间:2014-10-15 17:25:57

标签: c struct

我想将用户的学生详细信息打印到学生结构中,我不明白为什么当我使用linux终端编译时,没有输入或输出。请解雇我,我是新来的。

这是我的代码:

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

struct student 
{
char *name;               

int id;                   

char enroll;             

};

int main()
{
struct student john;
john.name = "John Smith";
john.id = 12345678;
john.enroll = 'D'; 

}

void getStudent(struct student *john)
{

printf("Type the name of the student: ");
john->name = malloc(100);   

fgets(john->name, 100, stdin);

printf("\nType the student number: ");
scanf("%d", &(john->id));

printf("\nType the student enrollment option (D or X): ");
scanf("%c", &(john->enroll)); 
return;
}

void printstudent(struct student john)
{

printf("Student name: %s\n", john.name);

printf("Student number: %d\n", john.id);

printf("Student enrollment option: %c\n", john.enroll);

return;

}

2 个答案:

答案 0 :(得分:0)

您需要从主要部门调用您定义的功能 在main函数中添加此语句。

printstudent(john);

答案 1 :(得分:0)

您需要从main(或任何需要它的函数)调用您的函数。编写一个函数(声明它)并没有实际执行它。

int main()
{
    foo();   // execute foo (call it)
}

void foo()
{
    // do stuff
}

您的函数是printf()和scanf()等函数,还必须调用才能使用。