C++中怎样获取文件的行数

来源:百度知道 编辑:UC知道 时间:2024/06/22 22:01:39
定义一个文件流fstream fin("a.txt"),在a.txt里面如果有0行则输出0,有n行则输出n。
不能通过数回车符的方式来计算行数,这样如果不小心多输了几个回车符,这样就不行了

判断是不是空行啊,假如是空行就不计数;
假如读到的不是空格也不是制表符,flag = 1;
假如读到的是回车,而且flag == 1,则count++,flag = 0;否则直接flag=0。
目的是为了读取足够长的行,可以采用下面的读取方式:

ifstream infile("a.txt");//此处默认的文件打开方式为“以输出的方式打开”
char str[N];//N是定义的常数,目的是为了读取足够长的行
int n=0;//用来表示说读/写文本的行数
while(!infile.eof())
{
infile.getline(str, sizeof(str));//此处默认的终止标识符为‘\n’
n++;
}
cout<<n;

1楼的方法可行啊,再加个判断文件结束的判断就可以了
ifstream in("a.txt");
char str[N];//N是定义的常数,目的是为了读取足够长的行
int n=0;
while(!in.eof())
{
in.getline(str, sizeof(str));
n++;
}
cout<<n;

看看有多少个'\n'就行了啊

那你就判断是不是空行啊,假如是空行就不计数啊
假如读到的不是空格也不是制表符,flag = 1
假如读到的是回车,而且flag == 1,则count++,flag = 0;否则直接flag=0;
很简单啊

就是
flag = 0;//flag = 1的意思就是“该行有非空字符”
count = 0;
while((c = getchar()) != EOF){
if(c != ' ' && c != '\t')
flag = 1;
els