怎么 读 文件老 是 出错 。
在windows 中我用 ifstream m_file , 在读文件的时候, 经常碰到 没有读到尾就出错,不知道有没有人 跟我有相同问题!在跟踪的时候 用 tellg 指出文件位置的时候,如果本来在 391 , 继续读四个字节突然 变为 -1 , 出错。 而文件长度 有几个Mbyte ! 怎么回事!??? 问题点数:0、回复次数:10Top
1 楼wwxsoft(婉儿)回复于 2004-12-03 15:58:39 得分 0
偶也不知道
Top
2 楼boxban(冻酸梨)回复于 2004-12-03 16:08:22 得分 0
1。你的程序有问题,概率99.99%
2。C++库/编译器有问题 0.005%
3。Windows有问题 0.005%
还是把代码贴出来让大家看看吧Top
3 楼yst_killed(不会游泳的鱼)回复于 2004-12-03 16:08:22 得分 0
把程序贴出来看看Top
4 楼goodluckyxl(被人遗忘的狗)回复于 2004-12-03 16:11:45 得分 0
打开的方式 和 文件格式统一吗
可以尝试用别的文件操作测试是否也有类似问题
如果还有可能不是你程序问题
如果没有 则大多在你使用出错了
解决不了 再贴出看看Top
5 楼koalapheonix()回复于 2004-12-03 16:40:07 得分 0
你尝试一下把其中的一个区中的文件删去再试一下
如果真的还是有问题
试一下把书中的例题打一下Top
6 楼zzffrr(zzffrr)回复于 2004-12-03 16:46:51 得分 0
看代码才能够知道呀!Top
7 楼fireinsky(kakaru)回复于 2004-12-03 16:57:33 得分 0
不会是硬盘里有坏道吧?Top
8 楼gushuheng(顾叔衡)回复于 2004-12-04 19:28:20 得分 0
to:goodluckyxl(被人遗忘的狗)
我后来都是用windows的API:ReadFile 和 WriteFile 解决的,没有问题了,原来的代码删掉了。很郁闷。我看别人跟我写的一样的都没问题啊,另外 我打开都是用 二进制 的方式 打开,但好象没有用。 写如文件的时候 数字 仍然 转换 成字符了 。 比如 a = 10000 ; out<< a ; 则 写入文件是 10000 字符串! 很奇怪,记得在 C 里面二进制读写不是这样的!Top
9 楼somedummy(某人马甲)回复于 2004-12-04 19:33:19 得分 0
使用ios::bin打开的话其实就是对\n和\r\n的解释起个作用而以,其他的并没有什么改变……Top
10 楼Flood1984(峰子)回复于 2004-12-04 20:01:36 得分 0
二进制的读写不用换成字符串Top




