社区
C语言
帖子详情
读取文件时遇到0x00如何处理?
miladuo
2010-08-10 10:15:33
各位好:
我在读取文件的时候用fgets来读取到数组中,但是如果文件中包含0x00的话,那按照正常处理,字符数组中0x00后面的字符就给丢了。高手有什么好方法吗?
另外,我读取的是大文件的,10G的文件很常见,用fgets在效率上会不会低,有什么更好的方法吗?在线等,非常感谢!
...全文
1009
12
打赏
收藏
读取文件时遇到0x00如何处理?
各位好: 我在读取文件的时候用fgets来读取到数组中,但是如果文件中包含0x00的话,那按照正常处理,字符数组中0x00后面的字符就给丢了。高手有什么好方法吗? 另外,我读取的是大文件的,10G的文件很常见,用fgets在效率上会不会低,有什么更好的方法吗?在线等,非常感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jackyjkchen
2010-08-10
打赏
举报
回复
fread和fwrite,写文件是最靠谱的,其他的函数给你带来的麻烦远大于便利
jinglirensheng
2010-08-10
打赏
举报
回复
啥意思?是想用strcpy拷贝,遇到\0就结束了??那么就用memcpy
miladuo
2010-08-10
打赏
举报
回复
我试试fread,然后再逐个字符进行分析。
xixiaoliu
2010-08-10
打赏
举报
回复
[Quote=引用 7 楼 miladuo 的回复:]
因为给的文件不规范,所以要写程序转化一下。
[/Quote]
不规范也有个目前的样子啊。看出它的规律,然后二进制读写
miladuo
2010-08-10
打赏
举报
回复
因为给的文件不规范,所以要写程序转化一下。
cattycat
2010-08-10
打赏
举报
回复
1
二进制文件按二进制方式处理吧,用fread.如果是文本文件,还可以用fgets()这个可以读一行,二进制文件如果没有\n估计就读溢出了。
老邓
2010-08-10
打赏
举报
回复
既然是数据库里导出的数据文本,则读写时必然得遵守指定的读写规则:比如指定数据结构,标志位等。
bluejays
2010-08-10
打赏
举报
回复
用fread吧
miladuo
2010-08-10
打赏
举报
回复
是数据库里导出来的数据文本,里面可能包含一些乱码什么的,需要去除掉,所以出现了这个问题。
pengzhixi
2010-08-10
打赏
举报
回复
建议用2进制的方式来读取
xixiaoliu
2010-08-10
打赏
举报
回复
是二进制文件么?那就不应该用文本文件处理函数来读。
fread
ilwmin
2010-08-10
打赏
举报
回复
fread
“0X????????”指令引用的“
0x00
000000”内存,该内存不能为“read”或“written”
在网上查到的资料,留着备用 使用Windows操作系统的人有
时
会
遇到
这样的错误信息: 「“0X????????”指令引用的“
0x00
000000”内存,该内存不能为“read”或“written”」,然后应用程序被关闭。 如果去请教一些「高手」,得到的回答往往是「Windows就是这样不稳定」之类的义愤和不屑。其实,这个错误并不一定是Windows不稳定造成的。本文就来简单分
Qt关于
遇到
0x00
提前结束的问题
目录 Qt关于
遇到
0x00
提前结束的问题 假如有如下一个文件,数据中包含大量的
0x00
1、使用QFile
读取文件
QFile firmwarefile(filePath); firmwarefile.open(QIODevice::ReadOnly); //方法1:全部读取 QByteArray ba = firmwarefile.readAll(); //正确 //方法2:读一行,指定长度 char buf[1024]; qint64 lineLength; lineLength =
读取文件
遇到
0X1A意外终止的解决方法
在Windows的集成开发环境中(Qt、VC、VS中均存在该问题)编写有关文件读取的C/C++程序,出现读取到0X1A的
时
候意外终止的情况,经调试检查发现0X1A经过读取之后被
处理
成0XFF(即EOF(-1)),但是Linux中(Redhat6.4以及Ubuntu14.04中测试)不存在这种解析错误的问题。关于出现这种问题的原因可参考:https://blog.csdn.net/zhoubl668...
Windows操作系统出现内存错误怎么办? 「“0X????????”指令引用的“
0x00
000000”内存,该内存不能为“read”或“written”」!!
Windows操作系统出现内存错误怎么办使用Windows操作系统的人有
时
会
遇到
这样的错误信息: 「“0X????????”指令引用的“
0x00
000000”内存,该内存不能为“read”或“written”」,然后应用程序被关闭。 如果去请教一些「高手」,得到的回答往往是「Windows就是这样不稳定」之类的义愤和不屑。其实,这个错误并不一定是Windows不稳定造成的。本文就来简单
内存不能读写完全解决方案(引用的“
0x00
000008″内存。该内存不能为”read”)...
最近发现很多朋友
遇到
这个问题现找到一篇文章与大家分享希望能帮助到你. 运行某些程序的
时
候,有
时
会出现内存错误的提示,然后该程序就关闭。 “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。 “0x????????”指令引用的“0x????????”内存,该内存不能为“written”。 不知你出现过类似这样的故障吗?(0x后面内容有可能不一样。...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章