我开始在Visual c++和我想知道如何保持控制台窗口。
例如,这将是一个典型的“hello world”应用程序:
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World";
return 0;
}
我漏了哪一行?
我开始在Visual c++和我想知道如何保持控制台窗口。
例如,这将是一个典型的“hello world”应用程序:
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World";
return 0;
}
我漏了哪一行?
当前回答
对于makefile项目,被接受的解决方案失败了,原因是Visual Studio中的一个bug(这个bug至少在2012版之前都存在-我还没有测试2013版)。这里详细介绍了这个错误。
为了在makefile项目的程序终止后让控制台暂停,执行以下步骤(这可能与2010 - 2012以外的版本有所不同):
1)将/子系统:CONSOLE传递给链接器。-编辑:见下文。
2)在文本编辑器中打开项目文件(.vcxproj)。
3)在根<project>标签内,插入以下内容:
< ItemDefinitionGroup > <链接> < SubSystem >控制台< / SubSystem > < /链接> < / ItemDefinitionGroup >
4)重新加载解决方案中的项目。
5)不调试运行程序(CTRL + F5)。
编辑:
根据我下面的评论,设置链接器选项/子系统:CONSOLE实际上与makefile项目无关(如果你使用的是MSVC以外的编译器,甚至不一定可能)。重要的是将设置添加到.vcxproj文件中,就像上面的第3步一样。
其他回答
对于makefile项目,被接受的解决方案失败了,原因是Visual Studio中的一个bug(这个bug至少在2012版之前都存在-我还没有测试2013版)。这里详细介绍了这个错误。
为了在makefile项目的程序终止后让控制台暂停,执行以下步骤(这可能与2010 - 2012以外的版本有所不同):
1)将/子系统:CONSOLE传递给链接器。-编辑:见下文。
2)在文本编辑器中打开项目文件(.vcxproj)。
3)在根<project>标签内,插入以下内容:
< ItemDefinitionGroup > <链接> < SubSystem >控制台< / SubSystem > < /链接> < / ItemDefinitionGroup >
4)重新加载解决方案中的项目。
5)不调试运行程序(CTRL + F5)。
编辑:
根据我下面的评论,设置链接器选项/子系统:CONSOLE实际上与makefile项目无关(如果你使用的是MSVC以外的编译器,甚至不一定可能)。重要的是将设置添加到.vcxproj文件中,就像上面的第3步一样。
你可以把 keep_window_open (); 在返回之前,这里有一个例子
int main()
{
cout<<"hello world!\n";
keep_window_open ();
return 0;
}
就在你的include之后 YW std:: cin.clear ();//重置任何错误标志 std:: cin.ignore (std:: numeric_limitsstd:: streamsize:: max (), ' \ n ');//忽略输入缓冲区中的任何字符,直到找到一个输入字符 std:: cin.get ();//从用户那里再获取一个字符
你可以使用cin.get();或cin.ignore ();在return语句之前,避免控制台窗口关闭。
在main()的结束大括号上放置断点。即使有多个return语句,它也会被绊倒。唯一的缺点是对exit()的调用不会被捕获。
如果你没有调试,按照Zoidberg回答中的建议,用Ctrl+F5来启动你的程序,而不是只用F5。