返回信息流很久没用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
这是一条镜像帖。来源:北邮人论坛 / cpp / #47370同步于 2010/12/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求组]C语言fopen打开大文件的问题
wind1101
2010/12/5镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
大文件推荐用 iomap
【 在 wind1101 的大作中提到: 】
: 很久没用C语言了,有些生疏,不知道是哪方面问题。
: 我用fopen打开一个CoreDict.txt文档(见附件),这个文档有110000行左右,我想通过读取文件,fscanf来获取它的行数,代码如下:
: char temp[120000][50]={""};//全局变量放在堆中
: ...................
【 在 ki 的大作中提到: 】
:
: 大文件推荐用 iomap
: 【 在 wind1101 的大作中提到: 】
: ...................
没用过。怎么用哦,这个函数?哪个函数库里的?
【 在 a206206 的大作中提到: 】
: 做霍夫曼压缩的时候。红楼梦比这个多多了,照样轻松搞定
: --
: 我是弱者,但是我不会逆来顺受,因为那不是弱者,而是奴隶
: ...................
究竟该怎样做啊?愿得详解。我同学用C++数据流处理一点问题没有。但是我想试试C语言,为什么就只能读到108行呢?