中易网

c/c++中如何采用二进制文件存储数据?

答案:3  悬赏:10  
解决时间 2021-02-19 02:37
c/c++中如何采用二进制文件存储数据?
最佳答案
应该这样保存:
int main()
{
string str1;
string str2;
cin >> str1;
cin >> str2;
ofstream outfile("temp.dat",ios::binary);
if(! outfile)
{
cerr << "Error ! " <<endl;
return 0;
}
outfile.write(str1.c_str(),str1.size()+1);

outfile.write(str2.c_str(),str2.size()+1);
outfile.close();
return 1;
}
读取的时候这样读取:
int main()
{
string str1;
str1.reserve(100);
ifstream infile("temp.dat",ios::binary);
if (! infile)
{
cerr << "Error ! " <<endl;
return 0;
}
infile.read((char * )str1.c_str(),100);
cout <<str1 <<endl; //输出第一个字符串
cout << (char*)(str1.c_str() + strlen(str1.c_str())+1) << endl;//输出第二个字符串
return 1;
}
全部回答
保存一个整数int a=12345;到文件 可以是文本方式,可以是二进制方式。 文本方式就是保存的文件内容是一个字符串12345,记事本可以直接打开,显示12345 fprintf(fp, "%d", a); 二进制方式就是把直接把12345这个数在内存的内容(0x00003039)直接放在文件中,你用记事本打开是乱码,一般用16进制编辑器打开 fwrite(&a, sizeof(a), 1, fp); 一般都是直接把一个结构保存到文件 比如 struct stu { char name
#include #include int main() { file* fp = fopen("abc.txt", "r"); if (fp == null) { return -1; } char sbuf[256] = {0}; int iarr[1024]; // 假设最多1024个 int i = 0; while ((fgets(sbuf) != null) && i < 1024) { iarr[i++] = atoi(sbuf); } return 0; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
林志玲是怎么成名的?
1.5国标铜线能不能连接1.5p空调
重庆到凉山四桥车过路费多少
重庆如果是酒店装修多少钱一平米??
卸载starforce protection 高手速来!!....
香面堂在什么地方啊,我要过去处理事情
9 7 8 6 7 5后面一位数是什么
我的狗丢了,去哪个网站找呢?
利然参茸有限公司怎么去啊,有知道地址的么
查查资料,你还了解蜜蜂的那些知识?
驾照自己预约共要多少钱
两台6RA70怎样才能实现速度同步?
莫帅增高鞋专卖(人民公园店)这个地址在什么地
湖南卫视快乐大本营手机直播怎么看啊? 芒果t
怎么看出来这个五线谱是降7的
推荐资讯
承路建筑机械租赁公司我想知道这个在什么地方
我跑步容易岔气,怎么办???
网上办理进京证申请成功后证件怎样取证
保定哪有卖百思图鞋的
演讲古文我要演讲一篇古文,不需要多长
科大涂料有限公司在什么地方啊,我要过去处理
“会当凌绝顶,一览众山小。”这是化用了孔子
人要什么时间才能不用为了钱而发愁啊?
长春公交卡办理
赛维干洗连锁中国NO.03998地址有知道的么?有
想从安卓最简单的编程开始学起,然后再逐步往
Gta5麦克警察都不怕,为何会怕一个黑帮老大马
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?