最近,我一直在尝试从这个网站学习C++ .不幸的是,每当我尝试运行其中一个代码示例时,我会看到该程序打开大约半秒然后立即关闭.有没有办法阻止程序立即关闭,以便我可以看到我努力的成果?
我开始使用Visual C++,我想知道如何保持控制台窗口.
例如,这将是典型的"hello world"应用程序:
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我错过的是什么?
在VS2010中,有一个选项可以在链接器下为exes/dll生成调试信息,但在库的librarian下没有这样的选项.调试信息是否嵌入在静态库中?
libs,exes和dll的程序库文件名的C/C++属性中有一个选项.默认情况下,它进入我的中间目录,并命名为libs的项目名称,但名为vc $(PlatformToolsetVersion).pdb for exes/dlls.这个选项的pdb是什么,它与链接器选项中的pdb有什么不同?
如果我提供带有库和头文件的库,如何向库的用户提供调试符号?
我有一组Boost单元测试,我想作为控制台应用程序运行.
当我正在进行项目并运行测试时,我希望能够调试测试,并且我希望在测试运行后让控制台保持打开状态.
我看到如果我在发布模式下运行,程序退出后控制台窗口会保持不变,但在调试模式下,情况并非如此.
我不想添加'system("pause");' 或任何其他黑客,比如在我的节目中读一个角色.我只是想在调试运行测试之后使Visual Studio暂停,就像我在发布模式下运行一样.如果在Visual Studio的一个输出窗口中捕获测试的输出,我也会喜欢它,但这似乎也应该比它应该更难.
我怎样才能做到这一点?
我正在使用Visual Studio 2010和Windows 7 x64
退出后命令提示符关闭,即使我使用"Start without debug".我可以使用某个地方设置吗?
我刚刚下载了Visual Studio 2013.当我编译C时,它没有显示我的输出.输出屏幕将显示一小段时间然后消失.
#include <stdio.h>
int main()
{
printf("hi");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
"程序'[5688] Project1.exe'已退出,代码为0(0x0)." 我知道我的代码可以正常运行,除了我不能让输出屏幕保持打开状态而不会在一秒钟之后退出.
Visual Studio 2017内置了对cmake项目的支持,这意味着您只需打开包含CMakeLists.txt的文件夹即可使用它.但是,似乎没有办法阻止控制台窗口在运行可执行文件后关闭.
使用正常的Visual Studio项目,您可以使用Ctrl+ F5运行而不连接调试器.但是,Ctrl+ F5做了完全相同的事情F5,就是它运行可执行文件并立即关闭控制台窗口.
另一个建议是将子系统设置为应用程序的"控制台",但cmake项目没有可以为其设置设置的Visual Studio项目.
我想也许我可以去我的CMakeLists.txt的调试和启动设置(右键单击>调试和启动设置> target.exe),这将打开launch.vs.json.不幸的是,我无法找到关于此的文档.但是,通过查看模式,似乎我可以设置,但这只是关闭调试器并没有做任何事情来阻止控制台关闭:"noDebug": true
{
"version": "0.2.1",
"defaults": {},
"configurations": [
{
"type": "default",
"project": "CMakeLists.txt",
"projectTarget": "target.exe",
"name": "target.exe",
"noDebug": true
}
]
}
Run Code Online (Sandbox Code Playgroud)
这让我发疯了.我不能只是添加一个system("pause")main函数,因为我正在使用测试框架提供的main函数.此外,这应该是完全没必要的; Visual Studio应该为我处理它.
在我的可执行文件完成后,当我的可执行文件来自cmake项目时,如何使Visual Studio控制台不关闭?
我正在使用Microsoft Visual Studio Community 2017,版本15.2(26430.16)发布
我开始在Windows上学习C++,我正在尝试一些不同的开发环境:1.使用Cygwin编译器进行Netbeans 2. MS Visual Studio 2010
对于其中任何一个,当我编写一个非常简单的Hello World程序时,我构建它并且没关系.但是当我尝试运行程序时,命令提示符窗口会快速弹出,然后立即消失.
无论是在Debug还是Release配置中,都会发生这种情况.请帮忙 - 我看不到我的程序输出!:(
谢谢.
编辑1:谢谢你的回复.这是我的代码:
#include <iostream>
int main()
{
std::cout << "This is a test." << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用Ctrl + F5进行"无需调试启动",但这不起作用.它仍然闪烁黑色控制台屏幕,然后立即消失.
我也尝试添加std :: cin.get(); 这适用于Ctrl + F5,但这不是一个真正...不优雅的解决方案吗?我宁愿让我的程序进入最终形式.
断点工作,但后来我必须运行调试,控制台窗口闪烁并消失,但然后它保持在后台.任何方法让控制台保持在前台,所以我可以立即看到程序输出?似乎它应该如何工作.
还有什么想法吗?为什么Ctrl + F5不起作用?
我有用C++编写的第三方SDK代码示例(控制台应用程序).当我从Visual Studio 2010(无需调试启动)运行其中任何一个时,它不会打印"按任意键继续...".最后,控制台窗口刚刚关闭.
他们是如何设法得到这种行为的?更重要的是:如何获得标准"按任意键继续......" 到底?当然,不改变程序代码......
主要功能如下:
void main( int argc, char** argv ){
// validate that an input was specified
if( argc != 2 )
{
printUsage();
return;
}
if( !strcmp(argv[1], "train") ) learn();
else if( !strcmp(argv[1], "test") ) recognize();
else
{
printf("Unknown command: %s\n", argv[1]);
printUsage();
}
}
Run Code Online (Sandbox Code Playgroud)
当我执行程序时,控制台一出现就会消失.
非常感谢您的耐心和帮助!:)
零