贰拾玖333 2022-03-19 22:46 采纳率: 50%
浏览 30
已结题

为什么使用fread函数第一个指针型参数不能是stdout?

当调用fread函数时第一个参数为stdout运行会出错

#include<stdio.h>
#include<string.h>
//binary二进制
typedef struct
{
int number;
char name[10];
char gender[5];//一个汉字最多4个字节
//刚刚查了一下好像是关于什么16*16点阵的,大概就是清晰度啥的吧??
//但老觉得不太对
int age;
} Student;

int main()
{
//建立s
Student s;
s.number=1001;
strcpy(s.name,"smith");
strcpy(s.gender,"M");
s.age=18;
//写文件
FILE *fp;
fp=fopen("student.dat","wb"); //wb表示二进制写,覆盖上次的内容

fwrite(&s,sizeof(Student),1,fp); 
fclose(fp); 

//读文件 
Student stu;
fp=fopen("student.dat","rb");  

// fread(&stu,sizeof(Student),1,fp);
fread(stdout,sizeof(Student),1,fp);//为什么这样不行?

/* printf("\n学号:%d;姓名:%s;性别:%s;年龄:%d\n",
stu.number,stu.name,stu.gender,stu.age); */
fclose(fp);

return 0; 

}

运行结果:直接运行结束,就有个黑框
因为stdout要读到\n才会输出到屏幕上,所以在strcpy(s.name,"smith后尝试加过\n但并没有任何作用
我希望能知道原因
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 3月27日
    • 创建了问题 3月19日

    悬赏问题

    • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
    • ¥15 Java+vue部署版本反编译
    • ¥100 对反编译和ai熟悉的开发者。
    • ¥15 带序列特征的多输出预测模型
    • ¥15 Python 如何安装 distutils模块
    • ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行
    • ¥15 资源泄露软件闪退怎么解决?
    • ¥15 CCF-CSP 2023 第三题 解压缩(50%)
    • ¥30 comfyui openpose报错
    • ¥20 Wpf Datarid单元格闪烁效果的实现