2017-05-24 46 views
0

這是我的代碼非常簡單,只是爲了一個測試。我的CMD輸出幾乎立即關閉,我似乎無法弄清楚爲什麼

#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:\用戶\雅各布\文檔\ Visual Studio的2017年\項目\測試\調試\ test.exe的'。符號加載。 'test.exe'(Win32):Loaded'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文件。 (Win32):卸載'C:\ Windows \ syswow64 \ ucrtbased.dll' 'test.exe'(Win32):加載'C:\ Windows \ syswow64 \ kernel.appcore.dll'。找不到或打開PDB文件。 'test.exe'(Win32):Loaded'C:\ Windows \ syswow64 \ msvcrt.dll'。找不到或打開PDB文件。 'test.exe'(Win32):Loaded'C:\ Windows \ syswow64 \ rpcrt4.dll'。找不到或打開PDB文件。 'test.exe'(Win32):加載'C:\ Windows \ syswow64 \ sspicli.dll'。找不到或打開PDB文件。 'test.exe'(Win32):Loaded'C:\ Windows \ syswow64 \ cryptbase.dll'。找不到或打開PDB文件。 'test.exe'(Win32):Loaded'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

在'return 0'行放置一個斷點。 –

+0

這只是意味着你沒有安裝上述庫的調試版本;不要擔心,最後一行'The program'[1976] test.exe'已經退出,代碼爲0(0x0).'顯示所有內容都已正確完成。哦,在'return 0;'之前加'getchar();'以便窗口不會立即關閉。 –

回答

1

您使用main()函數創建的經典C/C++風格程序,無窗口調用或函數庫在WIndows中稱爲控制檯程序。這意味着它應該在控制檯窗口中運行;標準輸入和輸出將在該控制檯窗口內發生。

如果您沒有控制檯窗口,Windows將在程序啓動時爲您創建一個窗口。但是當程序結束時它會立即銷燬它。

有很多方法可以解決這個問題。首先是從已經打開的控制檯啓動程序 - 如果Windows沒有自動打開它,Windows將不會關閉它。但是,如果您嘗試使用調試器,則這不起作用。其次是讓程序在結束之前暫停。您可以通過閱讀cin中的某些內容來做到這一點,或者正如我在評論中所建議的,只是在程序結束時放置一個斷點。

您在Visual Studio輸出窗口中看到的消息是而不是程序的輸出,它們是調試由Windows本身或C++運行時生成的消息。你看到關於丟失PDB文件的內容是完全無害的,這意味着你沒有Windows提供的DLL的調試信息,這是非常正常的。

相關問題