Windows 上的 C++ - 控制台窗口只是闪烁并消失。这是怎么回事?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4164077/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
C++ on Windows - the console window just flashes and disappears. What's going on?
提问by John Smith
Possible Duplicate:
Visual Studio Console App - Prevent window from closing.
I'm starting to learn C++ on Windows and I'm trying a few different development environments: 1. Netbeans with Cygwin compiler 2. MS Visual Studio 2010
我开始在 Windows 上学习 C++,我正在尝试几种不同的开发环境: 1. Netbeans 和 Cygwin 编译器 2. MS Visual Studio 2010
For either of them, when I write a very simple Hello World program, I build it and it's fine. But when I try to run the program, the command prompt window pops up really quick and then disappears right away.
对于它们中的任何一个,当我编写一个非常简单的 Hello World 程序时,我都会构建它并且它很好。但是当我尝试运行该程序时,命令提示符窗口弹出得非常快,然后立即消失。
This happens whether it's in Debug or Release config. Please help with this - I can't see my program output! :(
无论是在 Debug 还是 Release 配置中都会发生这种情况。请帮忙解决这个问题 - 我看不到我的程序输出!:(
Thanks.
谢谢。
EDIT1: Thanks for the replies. This is my code:
EDIT1:感谢您的回复。这是我的代码:
#include <iostream>
int main()
{
std::cout << "This is a test." << std::endl;
return 0;
}
I tried Ctrl+F5 for "Start without Debugging" and that doesn't work. It still flashes the black console screen then disappears right away.
我尝试了 Ctrl+F5 的“启动而不调试”,但不起作用。它仍然闪烁黑色控制台屏幕,然后立即消失。
I also tried adding in std::cin.get(); and this works with Ctrl+F5, but isn't that a really... inelegant workaround solution? I'd rather have my program in the final form.
我也尝试添加 std::cin.get(); 这适用于 Ctrl+F5,但这不是一个真正......不雅的解决方案吗?我宁愿让我的程序处于最终形式。
The breakpoint works, but then I have to run with debugging and the console window flashes and disappears, but then it stays in the background. Any way to get the console to stay in the foreground so I can see program output right away? Seems like that's how it should work.
断点有效,但随后我必须运行调试,控制台窗口闪烁并消失,但随后它留在后台。有什么方法可以让控制台保持在前台,以便我可以立即看到程序输出?似乎这就是它应该如何工作。
Any more ideas? Why wouldn't Ctrl+F5 work?
还有更多想法吗?为什么 Ctrl+F5 不起作用?
回答by user225312
After you are done with your program, press Ctrl + F5
( Run without debugging
). This will prompt before closing the window and this is what you want.
完成程序后,按Ctrl + F5
( Run without debugging
)。这将在关闭窗口之前提示,这就是您想要的。
回答by Simone
Write cin.get() at the end of the program.
在程序末尾写入 cin.get()。
回答by Mohamad Alhamoud
use Ctrl+F5
to run your program or set a break point in the last line or write cin>>
to any vraiable at the end....etc
用于Ctrl+F5
运行您的程序或在最后一行设置断点或cin>>
在末尾写入任何变量...等
回答by TheCee
Your application is probably working. Make the last command in your console application wait for user input: e.g int i;
string i;
cout<<"Hello";
cin<<i;
您的应用程序可能正在运行。使控制台应用程序中的最后一个命令等待用户输入:例如 int i;
string i;
cout<<"Hello";
cin<<i;
回答by swatkat
I think your program just prints Hello World
and then exits. That's the reason the console closes immediately. You can run the executable from Command Prompt (Start Menu > Run and type cmd.exe).
Otherwise, you can put std::cin.get()
in your code so that program waits for user's input and hence the console window remains open until a key is pressed.
我认为您的程序只是打印Hello World
然后退出。这就是控制台立即关闭的原因。您可以从命令提示符(开始菜单 > 运行并键入 cmd.exe)运行可执行文件。
否则,您可以std::cin.get()
输入您的代码,以便程序等待用户的输入,因此控制台窗口保持打开状态,直到按下某个键。
回答by soulseekah
Issue a getchar()
before returning or run from cmd.exe
getchar()
在返回或运行之前发出一个cmd.exe