2 qwertypkgg qwertypkgg 于 2017.01.03 11:05 提问

C++ 指针函数打开文件类型意义

int lines()
{
FILE *fp;
int line=0;
int filesize=0;
char ch=0;

if((fp=fopen("c:\filename.txt","r"))==NULL)
fp=fopen("c:\filename.txt","w");

fseek(fp,0,SEEK_END);//将指针移到文件末尾
filesize=ftell(fp);//获得文件的总的大小

fseek(fp,0,SEEK_SET);//将文件指针移到文件开头
 // printf("wenjianyigongyou %d da",filesize);
    while(filesize)
{
    ch=fgetc(fp);
    if(ch==0x0a)//0x0a表示换行,当每次换行时line++
    {
        line=line+1;
    }
    filesize--;//filesize为零时整个文件已经读完,判断结束
}

// printf("通讯录中一共有 %d个记录\n",line);
fclose(fp);
return line;
}

帮忙解释一下 具体一点 thx

2个回答

caozhy
caozhy   Ds   Rxr 2017.01.03 11:43
已采纳

第一次指向末端是为了获得文件长度,第二次又指向前端,是统计行数

caozhy
caozhy 回复qwertypkgg: 如果问题解决,烦劳采纳下,谢谢
11 个月之前 回复
qwertypkgg
qwertypkgg 嗯啊 看了你之前的解释 懂啦 thx
11 个月之前 回复
bdmh
bdmh   Ds   Rxr 2017.01.03 11:26

你还要怎么解释,你自己把代码运行起来,一步步看结果,对着解释

qwertypkgg
qwertypkgg 为什么有了指向文件首端 还要来一次指向文件末端。。指向首端的时候不就应该可以读出文件大小了吗
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!