c++读取二进制文件内容到链表文件读取

C++怎样把二进制文件赋给链表结点_百度知道
C++怎样把二进制文件赋给链表结点
结点包括整型和浮点型
例如文件里存储了几个人的资料:名字,年龄,收入。怎样分别存进head-&name,head-&age,head-&income各位大虾谢谢!!
我有更好的答案
这个二进制文件的结构你应该是知道的吧。如果不知道,那这段二进制buf是没法处理了。。。在知道结构时,例如知道名字是一个长度为100字节的字符串,年龄和收入是一个int或者unsigned int型。可以这样存储:char filebuf[1024] = {0}; //不知道长度够不够,自己改fopen()...fread()...//打开文件并读到filebuf中char * pointInfo =while(...){memcpy(head-&name,pointInfo,sizeof(head-&name));//获取名字pointInfo += sizeof(head-&name);head-&age = *(int*)pointIpointInfo += sizeof(int);head-&income = *(int*)pointIpointInfo += sizeof(int);}差不多了。对链表新建节点和插节点就不讲了。注意head-&name字符串的长度和结束符。
采纳率:41%
为您推荐:
其他类似问题
二进制文件的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。c++如何从文本文件中读取到链表中
[问题点数:40分]
c++如何从文本文件中读取到链表中
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年8月 C/C++大版内专家分月排行榜第三2012年7月 C/C++大版内专家分月排行榜第三
2012年7月 C/C++大版内专家分月排行榜第二2012年6月 C/C++大版内专家分月排行榜第二
匿名用户不能发表回复!|购买商品:
商品价格:
价格读取中
支付方式:
请扫码进行支付
请扫码进行支付
会员立省2.50元,
本课程为收费课程,请先购买当前课程
本课程为会员课时,请先开通会员
本课程为会员课时,您的会员账号已经过期
本课程为会员课时,您的会员账号已被禁用
文件地址有误
章未解锁,暂无观看权限
拼团未完成,暂无观看权限
购买未完成,暂无观看权限
播放器加载失败: 未检测到Flash Player,请
正在打包,请勿关闭和刷新页面
下一节课程:学习的重要性 (02:59)
每周都有机会获得讲师会员卡~~~
领取优惠券
正在努力加载中~~求用c++读取txt文档,并将内容存到链表中的程序和实验报告_百度知道
求用c++读取txt文档,并将内容存到链表中的程序和实验报告
您的回答被采纳后将获得:
系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
我有更好的答案
通常有两种方式:1.使用文件指针(文件标识符)。您可以参考资料:注:现在C++标准库不支持nocreate和noreplace,以前的旧版本可以用.打开文件的属性取值是:0:普通文件,打开访问1:只读文件2:隐含文件4:系统文件可以用“或”或者“+”把以上属性连接起来,如3或1|2就是以只读和隐含属性打开文件。例如:以二进制输入方式打开文件c:config.sysfstreamfile1;file1.open(&c:config.sys&,ios::binary|ios::in,0);如果open函数只有文件名一个参数,则是以读/写普通文件打开,即:file1.open(&c:config.sys&);file1.open(&c:config.sys&,ios::in|ios::out,0);另外,fstream还有和open()一样的构造函数,对于上例,在定义的时候就可以打开文件了:fstreamfile1(&c:config.sys&);特别提出的是,fstream有两个子类:ifstream(inputfilestream)和ofstream(outpufilestream),ifstream默认以输入方式打开文件,而ofstream默认以输出方式打开文件。ifstreamfile2(&c:pdos.def&);//以输入方式打开文件ofstreamfile3(&c:x.123&);//以输出方式打开文件所以,在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,就用ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定义。二、关闭文件打开的文件使用完成后一定要关闭,fstream提供了成员函数close()来完成此操作,如:file1.close();就把file1相连的文件关闭。三、读写文件读写文件分为文本文件和二进制文件的读取,对于文本文件的读取比较简单,用插入器和析取器就可以了;而对于二进制的读取就要复杂些,下要就详细的介绍这两种方式1、文本文件的读写文本文件的读写很简单:用插入器(&)从文件输入。假设file1是以输入方式打开,file2以输出打开。示例如下:file2&i;//从文件输入一个整数值。这种方式还有一种简单的格式化能力,比如可以指定输出为16进制等等,具体的格式有以下一些操纵符功能输入/输出dec格式化为十进制数值数据输入和输出endl输出一个换行符并刷新此流输出ends输出一个空字符输出hex格式化为十六进制数值数据输入和输出oct格式化为八进制数值数据输入和输出//setpxecision(intp)设置浮点数的精度位数输出setprecision(intp)设置浮点数的精度位数输出(setpxecision应该为setprecision,使用时需要包含头文件:#include)//比如要把123当作十六进制输出:file1
可是我不会写程序
为您推荐:
其他类似问题
链表的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 32, 距离下一级还需 168 积分
论坛徽章:0
编号&&名字
编号&&名字
编号&&名字
编号&&名字
编号&&名字
编号&&名字
这样的格式,怎么读到链表里?
论坛徽章:3
初始化链表;
while 从文件中获得一行
& && &在链表中生成一个新表元;
& && &把该行内容填写进新表元;
小富即安, 积分 2185, 距离下一级还需 2815 积分
论坛徽章:0
按楼上的做
白手起家, 积分 32, 距离下一级还需 168 积分
论坛徽章:0
但是我的链表结构是
typedef struct xx
&&LINK *pre,*
直接这样循环写的话,好象不能正确赋值吧,如果把链表打印出来的话,打印完第一个数据开始就是乱码了
论坛徽章:3
贴你的代码
家境小康, 积分 1723, 距离下一级还需 277 积分
论坛徽章:0
原帖由 vvvvovvvv 于
13:41 发表
但是我的链表结构是
typedef struct xx
&&LINK *pre,*
直接这样循环写的话,好象不能正确赋值吧,如果把链表打印出来的话,打印完第一个数据开始就是乱码了
bb没分配内存空间吧, 改成char bb[1024];试试
白手起家, 积分 32, 距离下一级还需 168 积分
论坛徽章:0
LINK *read(void)
&&FILE *fp = NULL;
&&char *buffer[20];
&&LINK *head = NULL;
&&if((fp=fopen(&data.txt&,&r&))==NULL)& &
&&printf(&eorror&);
&&return NULL;
head = (LINK *)malloc(sizeof(LINK));
if(head == NULL)
&&return NULL;
&&while(feof(fp)==0)
&&fread(buffer,sizeof(LINK),1,fp);
&&memcpy(head,buffer,sizeof(LINK));
&&fseek(fp,sizeof(LINK),SEEK_SET);
free(head);
head = NULL;
这样写我只是想先试下能不能把第一个写到链表里
论坛徽章:3
C语言你刚学?
白手起家, 积分 32, 距离下一级还需 168 积分
论坛徽章:0
论坛徽章:3
那你先理解指针和内存、变量如何存储这些基础概念吧,我从你的代码中发现你这些还没有理解
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处

我要回帖

更多关于 c 读取二进制文件内容 的文章

 

随机推荐