|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
int num;
char name[20];
char sex;
}stu, * pstu;
int main(void)
{
stu s;
pstu p;
p = &s;
printf("请输入学号 姓名 性别\n");
scanf("%d %s %c", p->num,p->name,p->sex);
printf("%d %s %c\n", p->num, p->name, p->sex);
return 0;
}
本帖最后由 C丁洞杀O 于 2023-1-6 22:31 编辑
emmm,其实是压根就没有输入进去,C的特性,scanf这个函数是比较垃圾的输入函数,你需要提交数据的地址,所以,你的p->num并不是地址,要加上取地址符(&),当然,C++ 的cin, cout 显然会更加好用一点(推荐一下)
代码如下,是对的(你没输入,已经错了)
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h> // 这个没啥用的库,单纯复制过来占内存的吗?(下面我用了,如果源代码没有,写注释的那行,可以删掉,没有用)
- typedef struct student
- {
- int num = 20;
- char name[20];
- char sex;
- }stu, * pstu;
- int main(void)
- {
- stu s;
- pstu p;
- p = &s;
- printf("请输入学号 姓名 性别\n");
- scanf("%d %s %c", &(p->num),p->name,&(p->sex));
-
- printf("%d %s %c\n", p->num, p->name, p->sex);
- system("pause"); //就是个中断
- return 0;
- }
复制代码
如果可以的话,求个最佳答案,谢谢!
|
|