coxixixixny 发表于 2020-4-8 21:43:15

代码有一小部分看不太懂,求助!!!

long getLogcount(FILE *cfptr)                 /*获取文件记录总数*/
{
        long begin,end,logcount;
       
        fseek(cfptr,0L,SEEK_SET);
        begin=ftell(cfptr);
        fseek(cfptr,size,SEEK_END);
        end=ftell(cfptr);
        logcount=(end-begin)/size-1;
        return logcount;
}
问题:红色部分是什么意思?看不太懂。。。。

wp231957 发表于 2020-4-8 22:10:06

size是啥鸟

sunrise085 发表于 2020-4-8 22:12:13

long getLogcount(FILE*cfptr) /*获取文件记录总数*/
{
    long begin,end,logcount;//定义长整型不用解释了
    fseek(cfptr,0L,SEEK_SET);//首先将文件的当前位置移到文件的文件头SEEK_SET代表文件头,OL代表偏移量OL的意思文件指针不移动
    begin=ftell(cfptr);//然后调用函数ftell()获得当前位置相对于文件首的位移,该位移值等于文件所含字节数。
    fseek(cfptr,size,SEEK_END);//同第二句,将文件的当前位置移到文件的文件尾部,并同时向后偏移size个位置,SEEK_END代表文件尾部,size代表偏移量,因为在函数中没有找到size应该定义在外面作为全局变量,size应该代表一条记录的长度。
    end=ftell(cfptr);//同第三句的含义,获取文件指针移动的范围,注意这里获取的是指针从文件头到现在文件尾部加size个位置的偏移
    logcount=(end-begin)/size-1;//通过这个方式他可以获得记录的条数,因为每条记录的长度是固定的,之所以防止存在文件指针存在错误移位和脏数据,而进行的保障性计算。通过这个获取文件中记录的条数。
    return logcount;//获取文件记录总数
}

coxixixixny 发表于 2020-4-8 22:34:33

sunrise085 发表于 2020-4-8 22:12


谢谢!还有一个小问题,#include <process.h>这个是什么意思呀?
页: [1]
查看完整版本: 代码有一小部分看不太懂,求助!!!