常德电信短信包怎么订:ifstream如何得到文本文件的总行数
来源:百度文库 编辑:中科新闻网 时间:2024/07/08 11:42:32
ifstream在原理上只是一段buffer,所以它不会真接算出文件有多少行的.而且实际上数据也是不分行的,只是有分行符.如果你用line[]装不下,用std::string中
string是可以的.而且有ignore方法,getline方法也用来吃一行数据,并不把读出的数据放入字符组,或者向下peek看读出的是不是换行符.
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
int count = 0;
char file[32], line[128];
ifstream outfile;
if( argc>1 )
strcpy(file, argv[1]);
else
strcpy(file, "test.txt");
cout << "begin to open file " << file << endl;
outfile.open(file);
while(!outfile.eof())
{
outfile.getline(line, sizeof(line));
count++;
}
cout << "line = " << count << endl;
return 0;
}
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int CountLines(char *filename)
{
ifstream ReadFile;
int n=0;
char line[512];
string temp;
ReadFile.open(filename,ios::in);//ios::in 表示以只读的方式读取文件
if(ReadFile.fail())//文件打开失败:返回0
{
return 0;
}
else//文件存在
{
while(getline(ReadFile,temp))
{
n++;
}
return n;
}
ReadFile.close();
}
void main()
{
cout<<"comn.txt的行数为: "<<CountLines("comn.txt")<<endl;
cin.get();
}