Visual c++ 如何在Visual C+中保持控制台窗口的打开状态+;? 我开始在VisualC++中,我想知道如何保持控制台窗口。< /P>
例如,这将是一个典型的“hello world”应用程序: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
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;
}