【问题标题】:How to prevent visual studio 2013 console window to close right after running a program? [duplicate]如何防止 Visual Studio 2013 控制台窗口在运行程序后立即关闭? [复制]
【发布时间】:2014-12-25 19:52:56
【问题描述】:

您好,我正在使用 Visual Studio Express 2013。我以前从未使用过 vs,所以只是为了测试它,我运行了一个简单的 C++ 程序,用户输入 2 个整数,然后显示它们的总和。问题是控制台窗口出现并接受输入,但在显示输出后立即关闭。请注意,这发生在所有输入都被输入之后并且显示输出时。有没有什么办法解决这一问题?我已经看遍了,找不到解决方案。我尝试在程序末尾添加一些东西,例如 getch() 函数,然后按 ctrl F5 来调试我的程序,但似乎没有任何效果。请帮忙!!!

【问题讨论】:

标签: c++ visual-studio visual-studio-2013


【解决方案1】:

我一直在用这个, int getchar ( void );

从标准输入获取字符 从标准输入 (stdin) 返回下一个字符。

从 process.h 中使用它

system("PAUSE");

这种方法适合初学者。它不受欢迎,因为它是一个特定于平台的 hack,与实际学习编程无关,而是绕过 IDE/OS 的一个特性——当程序完成执行时,从 Visual Studio 启动的控制台窗口关闭,所以新用户看不到他的新程序的输出。

一个不错的方法是Debug.WriteLine

// mcpp_debug_class.cpp
// compile with: /clr
#using <system.dll>
using namespace System::Diagnostics;
using namespace System;

int main() 
{
   Trace::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
   Trace::AutoFlush = true;
   Trace::Indent();
   Trace::WriteLine( "Entering Main" );
   Console::WriteLine( "Hello World." );
   Trace::WriteLine( "Exiting Main" );
   Trace::Unindent();

   Debug::WriteLine("test");
}

【讨论】:

  • system("PAUSE") 的主要问题是它创建了一个新进程。这不是什么大问题,但似乎没有必要。
【解决方案2】:

在调试模式下,在您的主要返回之前,您可以放置​​一个断点,您将能够看到您的控制台和您正在等待的结果。

【讨论】:

  • 如果我可以投票,我会投票给这个。无需在代码中添加仅在 IDE 中调试时需要的内容。
【解决方案3】:

system("PAUSE");

在您需要程序执行窗口暂停的地方。如果你使用 int main(),通常在你返回 0 之前就可以了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 2016-10-20
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多