在Windows程序中,开启控制台

原创 2004年09月17日 22:02:00

#pragma once<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

template<int k>

class _Int2Type

{enum{_A=k};};

 

template <bool e1,bool e2> class _enable

{

public:

     static void enable()

     {

         es(_Int2Type<e1>());

         ei(_Int2Type<e2>());

     }

private:

     static void ei(_Int2Type<true>)

     {

         static std::ofstream conout("con");

         static std::ifstream conin("con");

         if (conout.is_open())

              std::cout.rdbuf(conout.rdbuf());

         if (conin.is_open())

              std::cin.rdbuf(conin.rdbuf());

     }

     static void ei(_Int2Type<false>){}

     static void es(_Int2Type<false>){}

     static void es(_Int2Type<true>)

     {

         FILE *pf;

         if (pf=fopen("con","rt"))

              _iob[0]=*pf;

         if (pf=fopen("con","wt"))

              _iob[2]=_iob[1]=*pf;

     }

};

template <bool _EnableStdio,bool _EnableIostream>

void OpenConsole()

{

     static bool first=true;

     if (first)

     {

         first=false;

         if (AllocConsole())

         {

              _enable<_EnableStdio,_EnableIostream>::enable();

         }

     }

}

 

使用方法:

OpenConsole<true,true>();

接下来就可以使用 cin,cout,printf,scanf对控制台进行输入输出了。

 

在GUI程序中使用控制台的两种方法-方法.1

  • nanyu
  • nanyu
  • 2009年08月25日 13:43
  • 3618

Win32应用程序中创建控制台窗口

在Win32应用程序上默认是没有控制台窗口的,但经常需要用来调试。如何打开呢?1.设置两个全局的句柄,标准输入和输出。HANDLE hStdin;HANDLE hStdout; 2.建立控制台,并获得...
  • lzhlzz
  • lzhlzz
  • 2011年07月08日 19:32
  • 3417

在当前目录打开控制台程序(windows)

在用linux的时候发现,右键菜单中有一个“打开控制台”的选项,可以在鼠标点击的目录打开控制台,即打开的控制台已经cd到了鼠标所在的目录位置。用了这么久的windows操作系统,还没有见过这样的选项,...
  • BuquTianya
  • BuquTianya
  • 2013年08月10日 22:24
  • 4810

在当前目录打开控制台程序(windows) V2.0

上次的程序(http://blog.csdn.net/buqutianya/article/details/9885203)还存在一些问题。今天重新测试的过程中发现,可以仅仅通过添加2个注册表项实现此...
  • BuquTianya
  • BuquTianya
  • 2014年03月02日 09:14
  • 2231

在 console(控制台)下编译和运行 Java 程序

看看一个最简单的程序,其实就是 HelloWorld,只不过在这段程序前声明了一个 package。packagemypackage.example;classHello {    public st...
  • holy_phoenix
  • holy_phoenix
  • 2005年12月29日 15:10
  • 3151

在Windows程序中打开控制台的程序

//在Windows程序中打开控制台的程序#include #include #include BOOL CreateConsole(void){  FreeConsole();          i...
  • winux
  • winux
  • 2004年10月13日 12:33
  • 1765

[Windows]_[中级]_[界面程序打开控制台输出-转发输出到控制台]

场景: 1. 开发Windows界面程序时,需要打印输出,断点在调试多线程程序有局限性,就是会干扰线程的优先顺序,看不到正确的结果,往往就是断点就没事, 没断点程序就不能正常运行了。 2. 使用动态库...
  • infoworld
  • infoworld
  • 2015年05月10日 00:54
  • 2414

Winform程序中开启控制台

using System.Runtime.InteropServices; [DllImport("kernel32.dll")]         public static extern boo...
  • symcious
  • symcious
  • 2013年01月23日 11:23
  • 216

Windows程序使用控制台输出监视的变量(原来这样也可以)

Windows程序进行调试进行变量监视的时候,一般通过监视窗口进行,但是这样有时候切来切去很麻烦,今天向同学请教发现了一种可以用控制台监测变量的方法。 只需#include #include /...
  • gukesdo
  • gukesdo
  • 2011年08月20日 11:37
  • 1465

C#实现Web程序调用Windows程序的方法

using System;using System.Windows.Forms;using System.Security.Permissions;[PermissionSet(SecurityAct...
  • jetxia
  • jetxia
  • 2006年03月11日 08:30
  • 1813
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Windows程序中,开启控制台
举报原因:
原因补充:

(最多只允许输入30个字)