我开始使用Visual C++,我想知道如何保持控制台窗口.
例如,这将是典型的"hello world"应用程序:
int _tmain(int argc, _TCHAR* argv[]) { cout << "Hello World"; return 0; }
我错过的是什么?
用Ctrl+F5而不是仅仅启动项目F5.
Press any key to continue . . .
程序退出后,控制台窗口现在将保持打开状态.
请注意,这需要Console (/SUBSYSTEM:CONSOLE)
链接器选项,您可以按如下方式启用它:
打开项目,然后转到解决方案资源管理器.如果您在K&R跟随我,您的"解决方案"将是"hello",其中包含1个项目,也是"hello"的粗体.
右键单击"hello"(或任何项目名称).
从上下文菜单中选择"属性".
选择"配置属性>链接器>系统".
对于右侧窗格中的"子系统"属性,请单击右侧列中的下拉框.
选择"控制台(/ SUBSYSTEM:CONSOLE)"
单击"应用",等待它完成所做的任何操作,然后单击"确定".(如果"Apply"显示为灰色,请选择其他子系统选项,单击Apply,然后返回并应用控制台选项.我的经验是OK本身不起作用.)
CTRL-F5和子系统提示一起工作; 它们不是单独的选择.
(来自http://social.msdn.microsoft.com/Forums/en-US/vcprerelease/thread/21073093-516c-49d2-81c7-d960f6dc2ac6的DJMorreTX提供)
标准方式是cin.get()
在您的退货声明之前.
int _tmain(int argc, _TCHAR* argv[]) { cout << "Hello World"; cin.get(); return 0; }
在线上放一个断点return
.
你在调试器中运行它,对吧?
另一种选择是使用
#includesystem("pause");
虽然这不是很便携,因为它只能在Windows上运行,但它会自动打印
按任意键继续...
对于makefile项目,由于Visual Studio中的错误(至少在2012版本之前 - 我还没有测试过2013年),接受的解决方案失败了.这个bug 在这里详述.
为了在makefile项目上终止程序后让控制台暂停,请执行以下步骤(对于2010 - 2012以外的版本,这可能会有所不同):
1)传递- 编辑:见下文./SUBSYSTEM:CONSOLE
给链接器.
2)在文本编辑器中打开项目文件(.vcxproj).
3)在根
标签内插入以下内容:
Console
4)在解决方案中重新加载项目.
5)运行程序而不调试(CTRL + F5).
编辑:
根据我在下面的评论,设置链接器选项/SUBSYSTEM:CONSOLE
实际上与makefile项目无关(如果您使用的是MSVC以外的编译器,则不一定可能).重要的是该设置被添加到.vcxproj文件中,如上面的步骤3所示.