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