可能重複:
How to stop C++ console application from exiting immediately?C++。計劃selfkills當我運行它
我就℃的新手++。接下來的教程,我的程序完成執行簡單的命令(比如cout ans stuff)時會自動完成。我發現了避免這種情況的get.cin()函數。然而,任何時候我使用'cin'命令來插入變量,程序在接收到輸入並執行工作之後就會自殺。有沒有辦法避免這種情況?非常感謝!
可能重複:
How to stop C++ console application from exiting immediately?C++。計劃selfkills當我運行它
我就℃的新手++。接下來的教程,我的程序完成執行簡單的命令(比如cout ans stuff)時會自動完成。我發現了避免這種情況的get.cin()函數。然而,任何時候我使用'cin'命令來插入變量,程序在接收到輸入並執行工作之後就會自殺。有沒有辦法避免這種情況?非常感謝!
即使您使用std::cin.get()
,程序接收輸入時退出的原因是因爲每當cin
讀取輸入時,都有可能丟失一些垃圾;當你打電話給std::cin.get()
時,你會得到那個垃圾。
你必須做的是清除cin
任何不受歡迎的數據,這樣std::cin.get()
沒有什麼可讀的,並且需要等待新的輸入。
...
std::cin.clear();
std::cin.get();
return 0;
程序不會「自殺」。只要完成了它應該完成的所有工作(即從main
返回時),就會退出。
您需要設置您的工作環境,以便您可以看到程序的輸出。例如,如果你在Windows中,你可以打開自己的命令行(運行cmd
)並從那裏運行你的程序;或者指示您的IDE在程序退出後不要關閉終端窗口。
在某些窗口系統中,當您的程序執行時會創建一個控制檯窗口。當你的程序結束時,這個控制檯窗口消失。
我總是建議 「暫停」 模式新手:
cout << "Paused. Press ENTER to continue.\n");
cin.ignore(10000, '\n'); // Ignore until 100000 characters are entered or a newline is entered.
有時候,我使之成爲一個功能是:
void Pause(void)
{
cout << "Paused. Press ENTER to continue.\n");
cin.ignore(10000, '\n'); // Ignore until 100000 characters are entered or a newline is entered.
}
希望這有助於
std::cin.get()
工作良好,它的使用非常簡單,但它希望用戶按回車。 我用用ESC
結束我的節目,所以不會爲我工作,所以我用這個
#ifdef _WIN32
std::system("pause");
#else
std::system("read -n1 -r -p \"Press any key to continue...\"");
#endif
這將打印「按任意鍵繼續......」,並繼續按任意鍵執行所以我可以用我的可愛ESC
你的程序在執行後不會自行終止,它只是結束它。
簡單的例子:
#include <iostream>
int main(int argc, const char* argv[])
{
std::cout << "Hello, World" << std::endl;
return 0; // End of execution
}
在那個例子中的一個小窗口打開,然後關閉速度非常快,因爲代碼的邏輯是這麼說的,但是在下面的例子:
#include <iostream>
int main(int argc, const char* argv[])
{
std::cout <<"Hello, World!" << std::endl;
std::cin.get();
return 0;
}
你的應用程序仍然顯示在屏幕上,直到你按回車鍵'返回鍵'然後它將退出。
如果您正在使用的Windows操作系統,考慮下面的例子:
#include <iostream>
int main(int argc, const char* argv[])
{
std::cout << "Hello, World!" << std::endl;
system("PAUSE");
return 0;
}
請注意,system("PAUSE")
是僅適用於Windows並不會在其他操作系統上運行。
還有一個值得一提的事,也有很多方法來使用其他這些,但我寫的最常見的原因。
而不是退出,你想要/期望它做什麼? – RobertMaysJr
如果您爲控制檯編寫程序,然後在控制檯中運行它。 – jrok
它不會自殺,它可能剛剛達到其代碼的末尾。如果您希望窗口保持打開狀態,只需在最後詢問另一個輸入即可。這是最便攜的方式。 – Tibor