c语言中如何用子函数调用结构体中的变量实现数据的输入与输出。

比如定义了学生这个结构体,要在主函数中调用date_in和date_pout子函数来实现一个学生的姓名,年龄,性别的输入与输出。

用子函数实现结构体数据的输入与输出:对于多数子函数的输入与输出,有一定规律性可言。
方法1:void型不传值传址调用与声明。main中声明void date_in(),void date_pout()。函数定义前一定在main()前先定义结构体变量(全局变量),然后定义输入或输出程序段。此时再main()调用即可。
如下:
struct student
{
char name[20];
int old;
char sex;
}stu;
void date_in();
void main()
{ date_in();
}
void date_in()
{ scanf("%s%d/c,"stu.name,stu.old,stu.sex);
}时间问题程序有点简洁,有问题请追问,很乐意与你分享。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-13
用子函数实现结构体数据的输入与输出:对于多数子函数的输入与输出,有一定规律性可言。
方法1:void型不传值传址调用与声明。main中声明void date_in(),void date_pout()。函数定义前一定在main()前先定义结构体变量(全局变量),然后定义输入或输出程序段。此时再main()调用即可。
如下:
struct student
{
char name[20];
int old;
char sex;
}stu;
void date_in();
void main()
{ date_in();
}
void date_in()
{ scanf("%s%d/c,"stu.name,stu.old,stu.sex);
}时间问题程序有点简洁,有问题请追问,很乐意与你分享。本回答被网友采纳
第2个回答  2011-12-28
#include <stdio.h>
#include <string>

enum Gender { M = 0, F };
typedef struct struct_student {
char name[30];
unsigned age;
unsigned gender;
} student;

student data_in() {
student st;
printf("please enter your name: ");
scanf("%s", st.name);
printf("please enter your age:");
scanf("%d",st.age);
int set = 0;
char s [1000];
while(!set) {
printf("please enter your gender: (F/M)");
scanf("%s", s);
if(!strcmp(s,"F")) { set = 1; st.gender = F; }
if(!strcmp(s,"M")) { set = 1; st.gender = M; }
}
return st;
}

void data_pout( student st) {
printf("name:%s/tage %d gender %s", st.name, st.age, st.gender ? "F" : "M");
}本回答被网友采纳
相似回答