在线等待!急! 关于文件操作的!

dream19861009 2007-05-30 04:11:18
下面一段代码,哪里有问题?
怎么运行结果就是不对!
#include <stdio.h>
#include <stdlib.h>

struct student
{
int no;
char name[10];
};

typedef struct student ST;

void main()
{
ST *st1;
ST *st2;
FILE *fp;
st1=(ST *)malloc(sizeof(ST));
st2=(ST *)malloc(sizeof(ST));
if(!(fp=fopen("学生信息.txt","w+")))
{
printf("打开文件失败!");
}
printf("请输入学生学号:");
scanf("%d",&st1->no);
printf("请输入学生姓名:");
scanf("%s",st1->name);
fwrite(st1,sizeof(ST),1,fp);
fread(st2,sizeof(ST),1,fp);
printf("学生学号为:%d,学生姓名为:%s",st2->no,st2->name);
free(st1);
free(st2);
st1=NULL;
st2=NULL;
fclose(fp);
}
...全文
179 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dream19861009 2007-05-30
  • 打赏
  • 举报
回复
chongchong183 你说的行 啊,不过为什么啊,是不是在写数据进文件时只是在关闭文件前才真正的写进去的啊?
dream19861009 2007-05-30
  • 打赏
  • 举报
回复
在第二个scanf前加上 fflush(stdin);??
1. 不懂是什么意思?
2.加了 还是不行
chongchong183 2007-05-30
  • 打赏
  • 举报
回复
记得写完以后关掉再以读方式打开
rainstormed 2007-05-30
  • 打赏
  • 举报
回复
什么错误啊?结果不对?
在第二个scanf前加上 fflush(stdin);
chongchong183 2007-05-30
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

struct student
{
int no;
char name[10];
};

typedef struct student ST;

int main()
{
ST *st1;
ST *st2;
FILE *fp;
st1=(ST *)malloc(sizeof(ST));
st2=(ST *)malloc(sizeof(ST));
if(!(fp=fopen("学生信息.txt","w+")))
{
printf("打开文件失败!");
system("pause");
return 0;
}
printf("请输入学生学号:");
scanf("%d",&st1->no);
printf("请输入学生姓名:");
scanf("%s",st1->name);
fwrite(st1,sizeof(ST),1,fp);
fclose(fp);
fp=fopen("学生信息.txt","r+");
fread(st2,sizeof(ST),1,fp);
printf("学生学号为:%d,学生姓名为:%s",st2->no,st2->name);
free(st1);
free(st2);
st1=NULL;
st2=NULL;
fclose(fp);
system("pause");
return 0;
}
dream19861009 2007-05-30
  • 打赏
  • 举报
回复
怎么没有人答啊,急啊!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧