程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 通訊錄-求問這個代碼主要意義

通訊錄-求問這個代碼主要意義

編輯:編程解疑
求問這個代碼主要意義

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

求詳細一點,那個注釋不是很懂

最佳回答:


 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;
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved