阿布布 发表于 2023-1-6 22:02:16

我这里哪里错了,求救大佬

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

typedef struct student
{
        int num;
        char name;
        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;
}

阿布布 发表于 2023-1-6 22:03:58

可以输入,但是输出不了

额外减小 发表于 2023-1-6 22:18:45

你是不是忘了加取址运算符&{:10_269:}

C丁洞杀O 发表于 2023-1-6 22:24:02

本帖最后由 C丁洞杀O 于 2023-1-6 22:31 编辑

阿布布 发表于 2023-1-6 22:03
可以输入,但是输出不了

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;
      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;
}

如果可以的话,求个最佳答案,谢谢!

阿布布 发表于 2023-1-6 22:51:04

可以了,谢谢大佬。
页: [1]
查看完整版本: 我这里哪里错了,求救大佬