当我们在进⾏C++程序开发时,需要打印⼀些结果出来,但是输出时由于屏幕显⽰有限,看不到全部结果,下⾯这个函数可以将cout语句的输出输出到⼀个指定的⽂件中去,⽅便我们的查看.
  #include
  #include
  #include
  #include
  #include
  void coutToFile(char *fileName)
  {
  int fd;
  fd = open(fileName, O_WRONLY | O_CREAT, 0644);
  chmod(fileName, S_IRWXU | S_IRWXG | S_IRWXO);
  close(1);
  dup(fd);
  }
  int main( int argc, char** argv )
  {
  coutToFile("./tmp.log");
  ........
  return 0;
  }
  是在LINUX下使⽤的
  使⽤后,终端屏幕上不再显⽰输出信息,⽽是输出到了指定的⽂件中去了
  在使⽤VC++编写交互程序时,由于都是交互界⾯,所以运⾏中cout的信息是看不到的,使⽤下⾯的⽅法可以在你的交互程序运⾏的同时弹出⼀个cmd窗⼝,所有cout的信息全部输出到该窗⼝中BOOL CTestApp::InitInstance()
  {
  AfxEnableControlContainer();
  ...........
  // Dispatch commands specified on the command line
  if (!ProcessShellCommand(cmdInfo))
  return FALSE;
  #ifdef _DEBUG
  if (!AllocConsole())
  AfxMessageBox("Failed to create the console!", MB_ICONEXCLAMATION);
  #endif
  // The main window has been initialized, so show and update it.
  pMainFrame->ShowWindow(SW_SHOWMAXIMIZED);
  pMainFrame->UpdateWindow();
  // CG: This line inserted by 'Tip of the Day' component.并输出
  ShowTipAtStartup();
  return TRUE;
  }
  最后,在退出时别忘了删除该对象
  int CTestApp::ExitInstance()
  {
  #ifdef _DEBUG
  if (!FreeConsole())
  AfxMessageBox("Could not free the console!");
  #endif
  return CWinApp::ExitInstance();
  }
  由于使⽤了宏定义_DEBUG,所以只在Debug版本下才有,release版本下没有tml.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。