c - c中的注册功能
问题描述
所以我的任务是制作一个结构,它将输入学生的姓名、姓氏、学校和班级。问题是我需要创建 2 个功能,一个将进行注册(询问您的姓名、姓氏、学校和班级),另一个将打印您输入的所有内容。语言是 C,我真的需要帮助。我不太擅长C,所以如果我犯了愚蠢的错误,请原谅我。
#include "stdafx.h"
typedef struct uc
{
char name[20];
char surname[20];
char school[30];
char clas[30];
}_tStudent;
struct enrollment(_tStudent T)
{
printf("Name:");
scanf("%s",T.name);
printf("Surname:");
scanf("%s",T.surname);
printf("School:");
scanf("%s",T.school);
printf("Class:");
scanf("%s",T.clas);
return T;
};
void print()
{
_tStudent uc;
printf("%s",uc.name);
printf("%s",uc.surname);
printf("%s",uc.school);
printf("%s",uc.clas);
}
int _tmain(int argc, _TCHAR* argv[])
{
//declarations
int a;
int b;
struct uc iv;
//work
printf("Enter new student(0),print every student that u have(1)\n");
scanf("%d", &a);
if (a==0)
{
enrollment(iv);
}
else
{
print;
}
return 0;
}
解决方案
如果语言是 C(而不是 C++),那么你的函数声明是 wong:
struct enrollment(_tStudent T)
应该
void enrollment(_tStudent *T)
(你不再需要return
了。)
在main
您的声明中应该是:
struct _tStudent iv;
你的电话必须是:
enrollment(&iv);
调用函数总是需要(
and )
,所以print;
应该是print();
但是 print 函数有一个局部变量uc
,你想打印它。但是该结构具有垃圾值。你想从传递变量iv
main
,所以:
void print(_tStudent *uc)
并致电:
print(&iv);
请注意,所有函数都使用指向实际结构变量的指针。使用 声明指针,*
并且要调用接收指针的函数,您必须获取要传递的结构的地址。你用&
.
在函数中,您现在必须取消引用指针。你这样做->
:
scanf("%s",T->name); // in enrollment()
printf("%s",uc->name); // in print()
推荐阅读
- angular - 如何通过 .subscribe() 从响应中设置外部变量的值
- python - 将具有日期时间索引的行插入数据框
- jdbc - 尝试在事务之外执行读取查询时检测到通信故障。尝试重试查询
- sql - 以更有效的方式表达 oracle 查询
- python - 在尝试将 Python dict 附加到 JSON 时,它只写入一次
- python - 如何将列表元素加入特定的其他元素
- javascript - 以设定的时间间隔跟踪 URL
- c - 如何在C中附加两个字节
- talend - 如何使用 tRunJob 强制子作业使用与父作业相同的上下文?
- twitter-bootstrap-3 - 数据属性内的 Twig 变量