2 qwertypkgg qwertypkgg 于 2017.01.03 10:49 提问

求大神解释代码 具体一点的

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;
}

求详细解释 具体一点的额

2个回答

caozhy
caozhy   Ds   Rxr 2017.01.03 10:49
已采纳
 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++ 0x0a也就是我们熟知的 \r 字符,代表换行,ascii=10或者16进制的 0a
    {
        line=line+1; //行数+1
    }
    filesize--;//filesize为零时整个文件已经读完,判断结束
}
// printf("通讯录中一共有 %d个记录\n",line); //输出有多少行
fclose(fp);
return line;
}

http://ask.csdn.net/questions/355586

昨天已经完完全全,详详细细回答你了。你视而不见,让人伤心。

qwertypkgg
qwertypkgg sorry 十分感谢
一年多之前 回复
qwertypkgg
qwertypkgg 我之前一点开通知 他就显示页面不存在。。我就又发了几个- -
一年多之前 回复
Tiger_Zhao
Tiger_Zhao   Rxr 2017.01.03 10:52

注释已经够清楚了。
函数解释去看帮助。
如果还有困难,那么你需要一个家教。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
javaOOP编写
自己写的一点代码求解释求更正,不懂的很多希望大家一起探讨探讨
关于Csharp通过url下载的问题
为什么documentComplete 就是不起作用呢?为什么反复的循环呢?求大神解释下
已知一点坐标和经纬度求其它经纬度坐标或相应坐标经纬度
已知一点坐标和经纬度求其它经纬度坐标或相应坐标经纬度,里面是将坐标与经纬度相互转换的代码: 将坐标转化成相应的经纬度 传入起点经纬度,和终点经纬度,返回终点经纬度 直接复制整个代码运行即可,注:需修改LngLat str2为测试的起点,具体的使用方法查看main方法
易语言钓鱼源码
求大神买走 求大神买走 易语言钓鱼源码
经验分享!移动端设计开发流程(附神器推荐)
@我爱静电 和pc端网站的设计和开发相比,移动客户端的开发工作,对绝大多数人来说,绝对是一个崭新的行当。 那么当我们每天在iphone上,在各种安卓在各种pad上习以为常的刷着微博看着网文切着西瓜找着你妹的时候,当一大波人信心满怀的开始步入这个看似熟悉,或者说”简单”的工作中后,突然发现,悲催,完全不是那么回事嘛! 相信很大一部分产品或者设计或者开发人员是从之前的传统互联网”出家”过来的,当
哈夫曼树程序C++
代码的问题,结果是错误的,求解释,还有就是求编码,
已知一点的经纬度和该点到另一点的距离,求另一点的经纬度
刚做了将经纬度转换成距离,现在又要弄将距离转换成经纬度,哎!伤不起啊! 以下是将距离换算成经纬度,有误差。             //将相对于起点的距离转换为经纬度,distance代表到点的距离,angle代表方位角度         private string ConvertDistanceToLogLat(float distance, string logLatPtStr, d
大神的神级js代码
刚刚在做一个排序的问题,因为后台返回的是一次性返回的,而前台则需要根据类型来分类并且排序,类型也是在后台返回的数据中! 这样的话,就不好用返回的size来排序,然后尹大神出现了,用以下方法,一次搞定排序问题!    var  indexFlag = {};     //先定义一个数组对象    indexFlag[imgType] = (indexFlag[imgType] == u
求大神解释 #define问题
#define DEFINE_BASECALSS class Call{ public: virtual RT call(TPARAM) = 0; virtual RT call(TPARAM) const = 0;}; #define DEFINE_FUNCALSS template class FunCall : Call { public: FunCall(F f):m_func(f){}
线程池问题,求大神解释
String hql="from AUser where delFlag=0"; List aUsers= hibernateDaoSysService.findByHql(hql, null); ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(3); PingTimeThread thread = ne