統計行數可以通過統計換行符\n來實現。不過需要註意的是,有些文件最後壹行並不存在換行符,所以代碼中需要對此作處理。
可以在達到文件結尾後,判斷前壹個字符,如果不是換行符,那麽應補加最後壹行統計。
代碼如下:
假定輸入文件為in.txt,該文件存在且可讀。
#include?<stdio.h>int?main()
{
FILE?*?fp?=?NULL;?//文件指針。
int?c,?lc=0;?//c為文件當前字符,lc為上壹個字符,供結尾判斷用。
int?line?=?0;?//行數統計
fp?=?fopen("in.txt",?"r");//以只讀方式打開文件。
while((c?=?fgetc(fp))?!=?EOF)?//逐個讀入字符直到文件結尾
{
if(c?==?'\n')?line?++;?//統計行數。
lc?=?c;?//保存上壹字符。
}
fclose(fp);?//關閉文件
if(lc?!=?'\n')?line?++;//處理末行
printf("文件***有%d行。\n",?line);
return?0;
}
樣例輸入輸出:
如in.txt有如下內容:
test?line1test?line2
則會輸出:
文件***有2行。