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

标签 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)。

最佳答案

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

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

有很多技术可以解决这个问题。首先是从您已经打开的控制台启动程序 - 如果 Windows 没有自动打开它,它不会关闭它。但如果您尝试使用调试器,那将不起作用。二是让程序在结束前暂停,然后再退出。您可以通过阅读 cin 中的内容来完成此操作,或者按照我在评论中的建议在程序末尾放置一个断点。

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

关于c++ - 我的 cmd 输出几乎立即关闭,我似乎无法弄清楚为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44148215/

相关文章:

c++ - 错误 C2601 : 'main' : local function definitions are illegall - MS VS 2013 Compiler

c++ - 模板类方法特化

c++ - 类变量中类方法的列表/vector

windows - 在 Windows 上,是否可以以不同的用户身份运行单个 goroutine?

windows - 每个人都可写的 Win32 注册表项?

java - java 的 strace 或 procmon 等效项

c++ - 私有(private)成员(member)和免费功能的 Doxygen 评论?

c++ - Firefox pr_write 钩子(Hook)。 dll 注入(inject),Windows 钩子(Hook)

java 'jar' 不被识别为内部或外部命令

linux - 如何使用 winscp 控制台将文件从远程 Windows 8 服务器传输到 Linux 服务器