Visual c++ 如何在Visual C+中保持控制台窗口的打开状态+;? 我开始在VisualC++中,我想知道如何保持控制台窗口。< /P>

Visual c++ 如何在Visual C+中保持控制台窗口的打开状态+;? 我开始在VisualC++中,我想知道如何保持控制台窗口。< /P>,visual-c++,console,Visual C++,Console,例如,这将是一个典型的“hello world”应用程序: int _tmain(int argc, _TCHAR* argv[]) { cout << "Hello World"; return 0; } int-tmain(int-argc,_-TCHAR*argv[] { cout标准方法是在返回语句之前执行cin.get() int _tmain(int argc, _TCHAR* argv[]) { cout << "Hello Wor

例如,这将是一个典型的“hello world”应用程序:

int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Hello World";
    return 0;
}
int-tmain(int-argc,_-TCHAR*argv[]
{

cout标准方法是在返回语句之前执行
cin.get()

int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Hello World";
    cin.get();
    return 0;
}
int-tmain(int-argc,_-TCHAR*argv[]
{

cout您可以在return语句之前使用
cin.get();
cin.ignore();
来避免控制台窗口关闭。

另一个选项是使用

#include <process.h>
system("pause");
#包括
系统(“暂停”);
虽然这不是很便携,因为它只能在Windows上工作,但它会自动打印

按任意键继续

cin.get()
,或
系统(“暂停”)
。 我还没有听说你可以使用
return(0);

用Ctrl+F5而不是仅仅用F5启动项目

程序退出后,控制台窗口现在将保持打开状态,并按任意键继续…
消息

请注意,这需要
控制台(/SUBSYSTEM:Console)
链接器选项,您可以按如下方式启用该选项:

  • 打开您的项目,并转到解决方案资源管理器。如果您在K&R中跟随我,您的“解决方案”将是“hello”,下面有一个项目,还有粗体的“hello”
  • 右键单击“hello”(或您的项目名称)
  • 从关联菜单中选择“属性”
  • 选择配置属性>链接器>系统
  • 对于右侧窗格中的“Subsystem”属性,单击右侧列中的下拉框
  • 选择“控制台(/子系统:控制台)”
  • 单击“应用”,等待它完成所有操作,然后单击“确定”。(如果“应用”变灰,请选择其他子系统选项,单击“应用”,然后返回并应用控制台选项。我的经验是,“确定”本身不起作用。)
  • CTRL-F5和子系统提示一起工作;它们不是单独的选项


    (DJMorreTX从提供)

    返回
    行上放置一个断点


    您正在调试器中运行它,对吗?

    main()
    的结束括号上放置一个断点。即使有多个
    return
    语句,它也会被触发。唯一的缺点是不会捕获对
    exit()
    的调用


    如果您没有调试,请按照Zoidberg答案中的建议,用Ctrl+F5而不是F5启动程序。

    只需在
    \u tmain
    方法的结束括号中添加一个断点。这是一种更简单的方法,而且您不必为了调试而添加代码。

    我包含
    \include
    ,然后添加
    getch();
    就在
    返回0;
    行之前。无论如何,这是我在学校学到的。我知道上面提到的方法非常不同。

    也有同样的问题。我正在使用
    \u getch()
    就在return语句之前。它有效。

    对于makefile项目,由于Visual Studio中的一个错误(该错误至少存在到2012版-我还没有测试2013版)。此错误详细说明

    为了使控制台在makefile项目上的程序终止后暂停,请执行以下步骤(对于2010-2012以外的版本,这可能有所不同):

    1) 将
    /子系统:控制台
    传递到链接器。-编辑:见下文

    2) 在文本编辑器中打开项目文件(.vcxproj)

    3) 在根
    标记内,插入以下内容:

    
    安慰
    
    4) 在解决方案中重新加载项目

    5) 在不调试的情况下运行程序(CTRL+F5)

    编辑:


    根据我下面的评论,设置链接器选项
    /SUBSYSTEM:CONSOLE
    实际上与makefile项目无关(如果您使用的是MSVC以外的编译器,甚至不一定可能)。重要的是,按照上面的步骤3,将设置添加到.vcxproj文件中。

    只需在main的最后一个花括号中放置一个断点即可

        int main () {
           //...your code...
           return 0;
        } //<- breakpoint here
    
    int main(){
    //…你的代码。。。
    返回0;
    }//(有些选项可能会被不同的名称调用。我不使用英文版本)


    我也有同样的问题,当我用“empty project”选项创建项目时,将项目创建为“Win32 console应用程序”而不是“empty project”。在现在弹出的对话框中,按“continue”,然后可以选中“empty project”选项“然后按确认。在此之后,CTRL+F5将打开一个不会自动关闭的控制台。

    我也遇到了同样的问题;在我的应用程序中有多个退出()点,无法确切知道它从何处退出,然后我发现:

    atexit(system("pause"));
    

    这样,无论我们在程序中退出到哪里,它都会停止。

    我的2美分:

    选项1:在
    main()的末尾添加断点

    选项2:在返回0之前添加此代码;

    std::cout << "Press ENTER to continue..."; //So the User knows what to do
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    
    std::cout你可以把
    保持窗口打开();
    在返回之前,这里有一个例子

    int main()
    {
        cout<<"hello world!\n";
        keep_window_open ();
        return 0;
    }
    
    intmain()
    {
    cout另一种选择:

    #ifdef _WIN32
    #define MAINRET system("pause");return 0
    #else
    #define MAINRET return 0
    #endif
    
    大体上:

    int main(int argc, char* argv[]) {
        MAINRET;
    }
    
    只需在代码末尾添加系统(“暂停”),然后像这样返回0

    #include <stdlib.h>
    
    int main()
    {
        //some code goes here
        system("pause")
        return 0;
    }
    
    #包括
    int main()
    {
    //这里有一些代码
    系统(“暂停”)
    返回0;
    }
    
    实际上,真正的解决方案是选择项目模板本身。 您必须在旧版VS中选择Win32 Console应用程序,或者先填写项目名称,然后双击Windows桌面向导,然后选择Win32 Console应用程序。然后在此时选择空项目。这样就可以实现原始提问者真正想要的内容,而无需添加额外的停止点和保留代码。
    我也遇到了这个问题。答案也在MSDN站点上。

    这里有一种方法可以让命令窗口保持打开状态,而不管它是如何运行的
    int main(int argc, char* argv[]) {
        MAINRET;
    }
    
    #include <stdlib.h>
    
    int main()
    {
        //some code goes here
        system("pause")
        return 0;
    }
    
    int main()
    {
        //...
        getchar();
        return 0;
    }