现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

C++读取文件所有内容+写一个新文件

2012-08-27 07:00 工业·编程 ⁄ 共 1411字 ⁄ 字号 暂无评论

1. ifstream myFile ;

CStdString strForbiddenFilePathName = strModulePathName + "forbbiden.dat" ;
myFile.open(strForbiddenFilePathName.c_str()) ;

if (!myFile)
{
  g_Log.GetLog()->WriteDBGLog(IMP_RECORD, "CWebPageAnalyze::GetArtical", strPreLog + "打开禁用关键词失败");
  return FALSE ;
}
else
{
  while(getline (myFile, strTemp))
  {
   arrWebForbiddenWord.push_back(strTemp) ;
   strTemp.clear() ;
  }
}
myFile.close() ;
myFile.clear() ;

2. //  注:下面的代码中CStdString不是C++的内置类型,如果要复制,请相应更改成string等。有些函数是本人自己写的,也要相应删除。

  ifstream   myFile1 ;
  string    strTemp1 ;

  CStdString strUrl = strModulePathName + "url.txt" ;
  myFile1.open(strUrl.c_str()) ;
  ofstream   myFileOut1;
  CStdString strExtractContent = strModulePathName + "ExtractContent.txt" ;
  myFileOut1.open(strExtractContent.c_str()) ;
  strTemp1.clear() ;
  while (getline(myFile1, strTemp1))
  {
   TestAnalyze.GetArtical(strTemp1, strMyTitle, strMyContent) ;
   myFileOut1<<strTemp1.c_str()<<endl<<strMyTitle.c_str()<<"##"<<endl<<strMyContent.c_str()<<endl<<"####"<<endl ;
   strTemp1.clear() ;
   strMyTitle.clear() ;
   strMyContent.clear() ;
  }

  myFile1.close() ;
  myFile1.clear() ;
  myFileOut1.close() ;
  myFileOut1.clear() ;

另一个例子:

ofstream a ;
a.open ("1.txt") ;
DWORD I = GetTickCount () ;
for (int i =0; i<10000; ++i)
a<< 2011 << "-" << 8 << "-" << 3 << " " << 14 << ":" << 22 << ":" << 59
   << "\t" << "172.17.17.11" << "\t" << "49801bcf518c445 " << "\t" << "logvertest.exe"
   << "\t" << "Administrator" << "\t" << "无" << "\t" << "Run"
   << "\t" << "neirong" << "\t" << "Warn" << "\r\n";
DWORD II = GetTickCount () - I ;

注意:直接写数字的花费的时间比写字符的快。如 写8 比 写"08"快。

给我留言

留言无头像?