C++如何快速统计txt文件行数?

C++如何快速统计txt文件行数?大概有100W行,用getline一行一行读计数太慢。

内存映射,逐块读取,查找换行符

把文件整个读入内存,然后统计\n的个数。

把文件整个读入内存,然后统计\n的个数。

当然是查找换行符回车符的个数啦。

100万行,一行算100个字节,那么大约100兆,也不是很吓人。可以一次性读取,然后多线程(你有几个cpu核就用几个)分块统计分行符。

先读入内存 直接用remove('\n')返回值就是行数

FILE *pFile;
int c;
int n=0;
pFile=fopen(fullpath,"r");
if (pFile==NULL)
{
return;
}
else
{
do{
c=fgetc(pFile);
if (c=='\n')
n++;
}while(c!=EOF);
}

比用ifstream的getline快不少