本文代码均需要包含头文件:
1 #include<string> 2 #include<fstream>
全部使用std命名空间
取子文本:
1 string GetSubText(string str,string lstr,string rstr)//取文本中间的子文本 2 { 3 int p_l=str.find(lstr); 4 if(p_l<0)return ""; //如果找不到左标识字符串则直接返回空文本 5 p_l+=lstr.length(); 6 int p_r=str.find(rstr); 7 if(p_r<0)return str.substr(p_l,str.length()-p_l); //如果找不到右标识字符串则返回左标识字符串之后的所有文本 8 return str.substr(p_l,p_r-p_l); //找到之后返回其中的文本 9 }
一次性读取文本文件全部内容:
1 string ReadTextFile() 2 { 3 filebuf *pbuf; 4 ifstream fin; 5 long size; 6 char * buffer; 7 8 fin.open ("text.txt", ios::binary); // 要读入整个文件,必须采用二进制打开 9 pbuf=fin.rdbuf(); // 获取fin对应buffer对象的指针 10 size=pbuf->pubseekoff (0,ios::end,ios::in); // 调用buffer对象方法获取文件大小 11 pbuf->pubseekpos (0,ios::in); //把输入流内存指针调整到0位置 12 buffer=new char[size]; // 分配内存空间 13 pbuf->sgetn (buffer,size); // 获取文件内容 14 fin.close(); 15 return buffer; 16 }
时间: 2024-12-05 17:56:02