读取文件行数, 可以逐个字符读取文件,到文件尾,统计\n的个数
参考代码如下
#include <stdio.h>int main()
{
int c
FILE *fp
int lines=0
fp=fopen("in.txt", "rb")
if(fp)
{
while((c=fgetc(fp)) != EOF)
if(c=='\n') lines++
printf("%d\n",lines)
fclose(fp)
}
return 0
}
也可以通过fgets函数,每次读取一行,到文件尾,然后计算读取的次数
#include <stdio.h>#include <string.h>
int main()
{
char s[100]
FILE *fp
int lines=0
fp=fopen("in.txt", "r")
if(fp)
{
while((fgets(s,100,fp)) != NULL)
if(s[strlen(s)-1]=='\n') lines++
printf("%d\n",lines)
fclose(fp)
}
return 0
}
#include<stdio.h>int main(){char temp[255] int i=0 FILE *fp=NULL if((fp=fopen("file.txt","r"))==NULL) { printf("打开失败!\n") return 1 } while(fscanf(fp,"%s",temp)) i++printf("文件行数为:%d\n",i)return 0}//由于DOS不支持中文输入,所以文件名要英文的//^_^比如test.txt
//与程序放在同一个文件夹里的文件直接输入文件名加扩展名就行,如test.txt
//在其它地方的文件如在d盘根目录,输入包括完整路径如d:\test.txt
//
#include<iostream.h>
#include<fstream.h>
#include<string.h>
int main()
{
char fileName[30]
int line=0
cout<<"输入你要 *** 作的完整文件名(包括扩展名): "<<endl
cin.getline(fileName,30)
ifstream inFile(fileName)
if(inFile.fail())
{
cout<<"error for file"<<endl
return 0
}
cout<<fileName<<"文件的行数"<<endl
char str[101]
inFile.getline(str,100)
while(!inFile.eof())
{
line++
inFile.getline(str,100)
}
cout<<line<<endl
inFile.close()
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)