2011-03-06 105 views
2

我目前正在学习C++编程课程。我注意到我的教授程序在他们的程序结束时自动关闭。它通常会提示用户输入,然后在输入输入时关闭程序。我将如何编码?这是一个.exe文件C++代码自动关闭控制台

回答

3

如果您的程序不等待任何输入,它会运行并最终退出程序。退出时,控制台自动关闭。我假设,要运行程序,您只需单击.exe,而不是从cmd.exe运行该程序,或者从Visual Studio本身运行程序而不进行调试。

+1

从“按任意键”消息安迪提到的,我猜他是从Visual Studio中运行它无需调试判断。 – 2011-03-06 08:44:30

0

很容易,你的main()函数的投入这到底:

int x; 
cin >> x; 
我只能用回0让我“按任意键继续”

注知道

这定义了一个新的变量,并试图用用户输入填充它,然后程序不会被终止,直到用户给它输入。这就是程序到达Press any key to continue的方式,最后用0参数退出程序,并且控制台窗口将自动销毁,因为它是该进程的主窗口。

2

你可以只把下面的行return 0;前:

std::cin.get(); 

它会等待一些输入,然后继续。

1

使用getch();return;声明

1

返回0给“按任意JEY继续”是特定的调试器的行为。在调试器外部运行编译好的exe通常不会显示出来。下面的简单代码比你所要求的要多一点(它重复你输入的内容),但是仍然给出了总体思路。

#include <iostream> 
using namespace std; 

int main() { 
    cout << "enter something" << endl; 
    string stuff; 
    cin >> stuff; 
    cout << "You entered " << stuff << " you insensitive clod" << endl; 
    return 0; 
} 
0

我建议使用:

std::cin.clear(); 
std::cin.sync(); 
std::cin.get(); 

原因有可能是当你需要写东西,你将需要按ENTER键,这将使

std::cin.get(); 

useles。因为它会记住你第一次按下ENTER并关闭窗口。

样品:

#include <iostream> 
#include <string> 

int main() 
{ 
    std::string name; 
    std::cout << "Your name: "; 
    std::cin >> name;   \\ <--Place where you press ENTER <-------------- 
    std::cout << "Hi, " << name << "."; 

    std::cin.get(); 
    return 0; 
}