c語言統計文件的行數
① 用c語言讀出文件行數
#include<stdio.h>
inthangshu(charfile[])//輸入工程目錄下的文件名,或者其他目錄下絕對路徑名例如:c:\1.txt;
{
charc;
inth=0;
FILE*fp;
fp=fopen(file,"r");
if(fp==NULL)
return-1;//表示文件打開錯誤
while((c=fgetc(fp))!=EOF)
{
if(c==' ')
h++;
else
{
c=fgetc(fp);//這是處理最後一行可能沒有換行標志,但是確文件結束。
if(c==EOF)
{
h++;
break;
}
}
}
returnh;
}
intmain()
{
inths=hangshu("c:\1.txt");//這里說明你要打開的文件。這個是c盤根目錄下文件
inthst=hangshu("1.txt");//工程目錄下的文件。
printf("行數:%d ",hs);
printf("行數:%d ",hs);
}
如上是用c編寫的,不是c++.
運行的時候可以把中文注釋去掉。
完全可以運行的,我已經測試過了。
② 編寫一個程序,統計一個文本文件的行數(C語言)
#include<stdio.h>
main()
{FILE *fp,*fp1;
int cap=0, i=1;
char mid,filename[10];
printf("Input the filename like *.txt!\n");
scanf("%s",filename);
if((fp=fopen(filename,"r"))==NULL)
{printf("Can not open the file!\n");
exit (0);
}
if((fp1=fopen("stdout.txt","w+"))==NULL)
{printf("Can not open the file!\n");
exit (0);
}
while(!feof(fp))
{
mid=fgetc(fp);
if(mid=='\n') cap++;
}
fclose(fp);
if((fp=fopen(filename,"r"))==NULL)
{printf("Can not open the file!\n");
exit (0);
}
fprintf(fp1,"%d ",i++);
while(!feof(fp))
{
if(fputc(fgetc(fp),fp1)=='\n')
fprintf(fp1,"%d ",i++);
}
printf("cap=%d \n",cap+1);
fclose(fp);
fclose(fp1);
}
//相信你可以自己新建一個文本文件來實驗這個程序了爛殲,當然
//stdout.txt是程序自己建立的猛游,我運行的沒有什麼問題!
//如果有興趣的話,可以加枝歷銷我qq,彼此交流經驗,共同進步
//qq:237263394
③ 用c語言怎麼讀取txt文件中的行數
讀取文件行數, 可以逐個字元讀取文件,到文件尾,統計 的個數
參考代碼如下
#include<stdio.h>
intmain()
{
intc;
FILE*fp;
intlines=0;
fp=fopen("in.txt","rb");
if(fp)
{
while((c=fgetc(fp))!=EOF)
if(c==' ')lines++;
printf("%d ",lines);
fclose(fp);
}
return0;
}
也可以通過fgets函數,每次讀取一行,到文件尾,然後計算讀取的次數
#include<stdio.h>
#include<string.h>
intmain()
{
chars[100];
FILE*fp;
intlines=0;
fp=fopen("in.txt","r");
if(fp)
{
while((fgets(s,100,fp))!=NULL)
if(s[strlen(s)-1]==' ')lines++;
printf("%d ",lines);
fclose(fp);
}
return0;
}
④ 請編寫程序統計一個.cpp文件的行數(C語言)
#include"stdio.h"
#include"string.h"
int main()
{ int i,j,n=0;
char s[200];
FILE*fp;
fp=fopen("0.cpp","r");
while(!feof(fp))
{fgets(s,200,fp);
// printf("%s",s);
for(i=0;s[i]==' ';i++);
if(s[i]=='/'&&s[i+1]==' ')continue;
if(s[i]=='('&&s[i+1]==')')continue;
if(strlen(s)==1)continue;
n++;
}
printf("%d\n",n);
fclose(fp);
return 0;
}