2015-09-04 25 views
2

爲什麼程序剛剛退出,vs 2012中,而2010年它是否等待我的輸入?C++ getchar在vs 2010中工作,不在2012中

#include "stdafx.h" 
#include <string> 
#include <iostream> 

using namespace std; 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    string path = "c:\somepath"; 
    cout << "Path is" + path << endl; 
    getchar(); 
    return 0; 
} 
+0

嘗試刪除'endl'和'\ N'取代它,我覺得這可能幫助http://stackoverflow.com/a/8443105/3871352 – Kiloreux

+0

@Kiloreux以及如何將這項幫助? – piezol

+0

刪除endl並添加\ n沒有幫助 – Muteking

回答

0

getchar()功能沒有在程序流和僅等待輸入你的情況下,使用的副作用使用。爲了避免關閉窗口,您應該使用正確的方法保持打開狀態,而不是黑客攻擊您的程序。

選擇之一:

  1. 命令窗口

    • 打開命令提示符
    • 導航到你希望你的程序執行
    • 型路徑的文件夾。 exe並敲回車。執行程序後命令提示符仍然打開,並且不需要getchar()
  2. 不開始調試

    • 只需使用菜單項調試 - >開始不調試。執行程序後,新的控制檯窗口仍然打開,並且不需要getchar()
  3. 開始調試

    • 設置你的主要功能關閉 '}' 斷點。
    • 使用菜單項Debug-> Start。調試會話仍處於活動狀態,並且控制檯程序的窗口仍處於打開狀態。不需要getchar()

爲什麼你應該避免getchar()保持一個窗口打開?

  • 這是一個黑客,取決於程序之前。輸入緩衝區中可能有一些字符指向此處:getchar() doesn't work well?

  • 如果您超出了嘗試學習C或C++的階段,則無法在批處理文件中使用該程序。

  • 這沒有必要。

相關問題