当我们在进⾏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小时内删除。
发表评论