凉拌香菜 2016-06-09 09:19 采纳率: 100%
浏览 2016

用fwrite函数写入后,用fread函数读取无法得到自己原先输入结果

#include
#include
#include
using namespace std;
struct Node
{
string name;//学生名字
int age;//学生年龄
string key;//学生学号
};
void _save(Node p,int n)
{
FILE
fp;
fp=fopen("outfile.dat","wb");//以二进制形式输入文件流
for(int i=0;i {
fwrite(&p[i],sizeof(Node),1,fp);//输入node字节大小的二进制代码块到文件中,1表示代码块的数量
}
fclose(fp);
}
int main()
{
int n;//学生个数
cout cin>>n;
Node stu[n];
Node* p=stu;
cout<<"请依次输入学生的姓名,年龄.学号,并用空格分开,不同学生用回车分隔"< for(int i=0;i {
cin>>stu[i].name>>stu[i].age>>stu[i].key;
}
_save(p,n);
cout<<"输入任意键退出程序"<<endl;
cin.get();
cin.get();
}
这是写入函数

#include
#include
#include
using namespace std;
struct Node
{
string name;//学生名字
int age;//学生年龄
string key;//学生学号
};
int main()
{
int t,num;
FILE* fp;//
fp=fopen("outfile.dat","rb");
fseek(fp,0,SEEK_END);//指针位置偏移设为0
t=ftell(fp);//将文件长度赋值给t;
num=t/sizeof(Node);//算出结构体个数;
Node stu[num];
for(int i=0;i<num;i++)
{
fread(&stu[i],sizeof(Node),1,fp);//读取十个结构,1表示每次读取的代码块数量
}
fclose(fp);
cout<<stu[0].key;
}
这是读取函数

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
    • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
    • ¥16 mybatis的代理对象无法通过@Autowired装填
    • ¥15 可见光定位matlab仿真
    • ¥15 arduino 四自由度机械臂
    • ¥15 wordpress 产品图片 GIF 没法显示
    • ¥15 求三国群英传pl国战时间的修改方法
    • ¥15 matlab代码代写,需写出详细代码,代价私
    • ¥15 ROS系统搭建请教(跨境电商用途)
    • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。