程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 將打印結果輸出到文件或cmd窗口顯示

將打印結果輸出到文件或cmd窗口顯示

編輯:vc教程

  當我們在進行C++程序開發時,需要打印一些結果出來,但是輸出時由於屏幕顯示有限,看不到全部結果,下面這個函數可以將cout語句的輸出輸出到一個指定的文件中去,方便我們的查看

 #include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

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.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved