有一个标本txt文件,每行最后是\r\n结尾,每行长度不一致,请问如果高效地统计这个txt有多少行? 有一个标本txt文件,每行最后是\r\n结尾,每行长度不一致,请问如果高效地统计这个txt有多少行? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 每行长度不一致的话,只能用CStdioFile::ReadString()读一行数一行这个笨方法了。 也可用_getts(TCHAR* buffer);Get a line from the stdin stream. 仔细一想:不对,有一个好的方法!1 先把全部文本内容读进一个CString str中(如果你的文件不是大得离谱的话);2 用CString的Replace方法,替换换行符"\r\n",它的返回值int LineNumber=str.Replace("\r\n","");就是换行符的个数,即多少行。文件大的话就分几次读,一般一次读1M的话比较好一些。 代码如下:#include <afx.h>#include <iostream.h>void main(){ CString str=""; CFile file("f:\\test.txt",CFile::modeRead); char* temp=new char[file.GetLength()+1]; memset(temp,0,file.GetLength()+1); file.Read(temp,file.GetLength()); str=temp; int LineNumber=str.Replace("\r\n",""); file.Close(); delete temp; temp=NULL; cout<<"文件共有"<<LineNumber+1<<"行"<<endl; //别忘了要加1}在我的机器上(系统XP,VC++6.0)测试通过,自己手工数的时候要注意减去那些自动换行的行数,因为它们不能算一行。 最新VC相关开发工具! CEdit屏蔽输入法的功能是如何实现的? 挑战CSDN所有牛人,送200分,子窗口得不到键盘消息,SDK, 请问怎么为MDI程序增加背景? 文件拷贝的问题 如何禁止弹出菜单的某个选项? 请问为什么这样的数组写法是合法的?怎么用呢? 送你们一份厚礼物,免费的WIN32API函数参考大全,节约你们100块RMB 如何做托盘(200分) 请问:哪里可以下载VC的PRO*C预编译程序! MSDN中的Sample没有dsw工程文件,把Sample加到我的工程中太费事了,请问有什么好办法吗? 大家能不能给我讲一个MFC的具体的例子???
Get a line from the stdin stream.
1 先把全部文本内容读进一个CString str中(如果你的文件不是大得离谱的话);
2 用CString的Replace方法,替换换行符"\r\n",它的返回值int LineNumber=str.Replace("\r\n","");就是换行符的个数,即多少行。文件大的话就分几次读,一般一次读1M的话比较好一些。
#include <afx.h>
#include <iostream.h>void main()
{
CString str="";
CFile file("f:\\test.txt",CFile::modeRead);
char* temp=new char[file.GetLength()+1];
memset(temp,0,file.GetLength()+1);
file.Read(temp,file.GetLength());
str=temp;
int LineNumber=str.Replace("\r\n","");
file.Close();
delete temp;
temp=NULL;
cout<<"文件共有"<<LineNumber+1<<"行"<<endl; //别忘了要加1
}在我的机器上(系统XP,VC++6.0)测试通过,自己手工数的时候要注意减去那些自动换行的行数,因为它们不能算一行。