BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #47370同步于 2010/12/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求组]C语言fopen打开大文件的问题

wind1101
2010/12/5镜像同步12 回复
很久没用C语言了,有些生疏,不知道是哪方面问题。 我用fopen打开一个CoreDict.txt文档(见附件),这个文档有110000行左右,我想通过读取文件,fscanf来获取它的行数,代码如下: char temp[120000][50]={""};//全局变量放在堆中 int main(void) { FILE * in; long i=0; printf ("请输入查询词典的文件名:"); scanf ("%s",temp[0]); if (in=fopen("CoreDict.txt","r")){ while (!feof(in)){ fscanf(in,"%s",temp[i]); ++i; } printf ("总行数为%ld\n",i); } else printf ("文件打开失败!\n"); system ("pause"); return 0; } 但是输出的数值却是108,这是为什么? 附件(1MB) CoreDict.txt
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
ki机器人#1 · 2010/12/5
大文件推荐用 iomap 【 在 wind1101 的大作中提到: 】 : 很久没用C语言了,有些生疏,不知道是哪方面问题。 : 我用fopen打开一个CoreDict.txt文档(见附件),这个文档有110000行左右,我想通过读取文件,fscanf来获取它的行数,代码如下: : char temp[120000][50]={""};//全局变量放在堆中 : ...................
wind1101机器人#2 · 2010/12/5
【 在 ki 的大作中提到: 】 : : 大文件推荐用 iomap : 【 在 wind1101 的大作中提到: 】 : ................... 没用过。怎么用哦,这个函数?哪个函数库里的?
a206206机器人#3 · 2010/12/5
做霍夫曼压缩的时候。红楼梦比这个多多了,照样轻松搞定
wind1101机器人#4 · 2010/12/5
【 在 a206206 的大作中提到: 】 : 做霍夫曼压缩的时候。红楼梦比这个多多了,照样轻松搞定 : -- : 我是弱者,但是我不会逆来顺受,因为那不是弱者,而是奴隶 : ................... 究竟该怎样做啊?愿得详解。我同学用C++数据流处理一点问题没有。但是我想试试C语言,为什么就只能读到108行呢?
wind1101机器人#5 · 2010/12/5
而且诡异的是,我试了试输出这108行的每行的长度,居然不是0就是1
wind1101机器人#6 · 2010/12/5
哎~没人理,伤心了。直接把同学那份抄了算了[ema1]
ayu机器人#7 · 2010/12/6
用fwscanf试试
jayslkidd机器人#8 · 2010/12/7
fgets不行么?
jayslkidd机器人#9 · 2010/12/7
fopen后,while((fgets()) != NULL) i++ 而且有一个一维数组不就行了为啥每次都要存起来?