2013-12-23 16 views
15

我剛剛下載了Visual Studio 2013.當我編譯C時,它不會顯示我的輸出。輸出屏幕將顯示一秒鐘,然後消失。如何防止輸出屏幕在Visual Studio 2013中消失C++編譯器

#include <stdio.h> 

int main() 
{ 
    printf("hi"); 
    return 0; 
} 

「程序'[5688] Project1.exe'已退出,代碼爲0(0x0)。」 我知道我的代碼工作正常,除非我無法讓輸出屏幕保持開啓狀態,而不會在一秒鐘後退出。

+2

在命令行中運行.exe,或者在程序結束時添加系統(「暫停」)。如果您只需單擊該exe,也會發生這種情況。由於windows在程序退出後立即關閉命令行,只需添加一個將暫停的命令。 – moeCake

+0

Buid target debug – silentboy

+0

Your question title is Shows C++ and tag is on C ... – 2013-12-23 04:16:51

回答

29

您可以在調試模式和發佈模式下運行應用程序。通常,Ctrl + F5將在沒有調試器的情況下運行應用程序。而F5只是運行該應用程序。

如果你這樣做了Ctrl+F5(「Start without Debugging」),控制檯在最後仍保持打開狀態,並要求您在此處看到輸出結果Press any key to continue . . .

如果您只是使用F5那麼您處於調試模式。在最後添加,getchar()功能之前retuen 0;因此控制檯會等到你按任意鍵...

+0

我厭倦了使用Ctrl + F5,但它也只是閃爍輸出不到一秒,然後消失。我也嘗試使用getchar(),但它也不起作用。 – user3128376

+1

int main() { printf(「hi」); \t getchar(); return 0; } – 2013-12-23 04:13:56

+0

你在哪裏添加getchar();?你必須在返回0之前添加; – 2013-12-23 04:14:57

2

return 0前加入編碼;

int num; 
scanf ("%d",&num); 

getchar(); 
+0

OOPS,問題標記爲C和問題標題告訴C++ ...對不起! – 2013-12-23 04:15:57

+1

我編輯了上面的代碼... –

2

有幾件事情可以做(我假設你正在使用Windows):

  1. 編譯並使用Visual Studio Command Prompt程序執行程序。
  2. 在返回到操作系統之前添加getchar();
  3. 在返回到操作系統之前添加system("pause");
8

除了包括已經提到什麼是進入該項目的性質和更改Subsystem另一種選擇System部分中的Linker選項爲Console (/SUBSYSTEM:CONSOLE)。然後當您使用ctrl+f5(調試/開始不調試)運行程序時,控制檯窗口將保持不變。

MSDN reference for the subsystem option

+0

你怎麼能做出這個默認選項? –

2

我只是在return 0語句中放置了一個斷點(F9鍵)。只在調試模式下工作,但這正是你想要的。如果您直接從命令行運行該程序,則它已按預期工作。

+0

你也可以在'exit','abort'等處放置一個斷點 – andrewrk

0

我用Python的Visual Studio 2013,我也與這個問題鬥爭。我的解決方案是按F5而不是Ctrl + F5,然後我將有2個彈出窗口(控制檯和程序輸出)。

我關閉了控制檯窗口,另一個將一起關閉。

0

我首先使用了提到的getchar()和breakpoints解決方案,但是如果您希望程序結束(例如,如果您使用的是內存泄漏檢測器),這並不好。我通過將輸出重定向到一個文件來解決這個問題。您可以通過在項目屬性

2
#include <stdlib.h> 
#include <stdio.h> 
int main() 
{ 
    printf("hello world"); 
    system("pause"); //this pauses the program until you press any key 
    return 0; 
} 

的調試節中的命令行選項將>output.txt輸出將是這樣:

的hello world

按任意鍵繼續......

0

爲了防止屏幕關閉,您可以在Visual Studio中使用getchar(),如下所示:

#include "stdafx.h" 
#include <stdio.h> 
#include <iostream> 
using namespace std; 


int main() 
{ 
    cout << "Hello\n"; 
    getchar(); 

} 
相關問題