我的cmd输出几乎立即关闭,我似乎无法弄清楚为什么

时间:2017-05-24 02:58:36

标签: c++ windows

这是我的代码非常简单,只是为了测试。

 #include <iostream>

 using namespace std;
 int main()
 {
 int a, b, c;
 a = 2;
 b = 7;
 c = a + b * 3;
 cout << c;
 return 0;
 }

我得到了这个调试 'test.exe'(Win32):加载'C:\ Users \ Jacob \ Documents \ Visual Studio 2017 \ Projects \ test \ Debug \ test.exe'。符号已加载。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ ntdll.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ kernel32.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):卸载'C:\ Windows \ syswow64 \ kernel32.dll' 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ kernel32.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ KernelBase.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ msvcp140d.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ vcruntime140d.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ vcruntime140d.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):卸载'C:\ Windows \ syswow64 \ vcruntime140d.dll' 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ ucrtbased.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ ucrtbased.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):卸载'C:\ Windows \ syswow64 \ ucrtbased.dll' 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ ucrtbased.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):卸载'C:\ Windows \ syswow64 \ ucrtbased.dll' 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ kernel.appcore.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ msvcrt.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ rpcrt4.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ sspicli.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ cryptbase.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ bcryptprimitives.dll'。无法找到或打开PDB文件。 'test.exe'(Win32):加载'C:\ Windows \ syswow64 \ sechost.dll'。无法找到或打开PDB文件。 线程0x128已退出,代码为0(0x0)。 线程0x1f08已退出,代码为0(0x0)。 线程0x15d0已退出,代码为0(0x0)。 程序'[1976] test.exe'已退出,代码为0(0x0)。

1 个答案:

答案 0 :(得分:1)

您使用main()函数创建的经典C / C ++样式程序,并且没有窗口调用或库在WIndows中称为控制台程序。这意味着它意味着在控制台窗口内运行;标准输入和输出将在该控制台窗口内发生。

如果您没有控制台窗口,Windows将在程序启动时为您创建一个。但是,当程序结束时它会立即销毁它。

有很多技巧可以解决这个问题。首先是从你已经打开的控制台启动程序 - 如果Windows没有自动打开它,它就不会关闭它。但是,如果您尝试使用调试器,那么这不起作用。其次是在程序退出之前使程序暂停。您可以通过阅读cin中的内容或正如我在评论中建议的那样在程序结束时设置断点来完成此操作。

您在Visual Studio输出窗口中看到的消息不是程序的输出,它们是由Windows本身或C ++运行时生成的调试消息。你看到丢失的PDB文件是完全无害的,它们意味着你没有掌握Windows提供的DLL的调试信息,这是完全正常的。