执行开始后,简单的"Hello World"风格程序很快关闭

Ben*_*CEO 1 c++ compiler-construction visual-studio-2013

我正在通过一本名为C++ A Beginners Guide Second Edition的书学习C++ .当我运行可执行文件时,它显示它半秒钟并关闭它.

我在Windows 8.1上使用Microsoft Visual Studio Express 2013 for Windows Desktop.

这是代码:

*/
#include <iostream>
using namespace std;

int main()
{
    cout << "C++ is power programming.";

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

我只能在运行时看到文本,因为控制台关闭得如此之快.

为什么程序关闭如此之快,如何阻止它发生?

'Project1.exe' (Win32): Loaded 'C:\Users\Benjamin\Documents\Visual Studio 2013\Projects\Project1\Debug\Project1.exe'. Symbols loaded.
'Project1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Cannot find or open the PDB file.
'Project1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
'Project1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.
'Project1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp120d.dll'. Cannot find or open the PDB file.
'Project1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcr120d.dll'. Cannot find or open the PDB file.
The program '[6908] Project1.exe' has exited with code 0 (0x0).
Run Code Online (Sandbox Code Playgroud)

OMG*_*chy 5

逐行完成您的程序:

int main()
{
Run Code Online (Sandbox Code Playgroud)

这定义了程序的入口点int,它返回的入口点将返回到启动程序的任何内容.

    std::cout << "C++ is power programming."; // or just cout when you're using namespace std
Run Code Online (Sandbox Code Playgroud)

这会将字符串文字打印C++ is power programming.到控制台.

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

将值0返回给调用者通常用于指示成功(程序成功执行).但是,如果您愿意,可以返回其他内容(例如,如果您的程序计算调用者应该使用的某个值).

因此,简而言之,您告诉程序将消息打印到控制台然后返回,这正是它所做的.如果你想在程序结束后立即停止关闭程序,你可以在return 0语句之前做到这样:

std::cin.get(); // or just cin.get() when using namespace std
return 0;
Run Code Online (Sandbox Code Playgroud)

什么std::cin.get()是等待用户输入; 按Enter键应该在准备好后结束你的程序.