基本I/O在Visual C++ 2010中不起作用?

Pat*_*der 0 c++ io visual-c++

我正在尝试制作一个程序来询问他们的名字,然后说"你好,(他们的名字)!" 背部.到目前为止,这是我的代码,"getchar()"只是暂停,我可以看到输出.

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string name;
    cout<<"What is your name?:";
    cin>>name;
    cout<<"Hello, "<<name<<"!";
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这要求我输入,我输入我的名字,然后应用程序关闭!我不知道为什么以及如何解决它!请帮忙!

编辑:找出如何解决它.完成的代码:

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string name;
    cout<<"What is your name?: ";
    cin>>name;
    cout<<"Hello, "<<name<<"!\n";
    system("PAUSE");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Lig*_*ica 5

Dietmar写了正确的答案,不幸的是作为一个奇怪的原因的评论.

getchar()已经是一个黑客但我会让你失望.用类似的东西替换它更像system("PAUSE")是一个黑客,所以我们不要去那里.

getchar() 工作正常,但是\n在名称之后的缓冲区中仍然有一个(记住,你必须输入ENTER提交它!)这是令人满意的,getchar()没有进一步的用户干预.

你可以摆脱那个幽灵换行:

std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
getchar();
Run Code Online (Sandbox Code Playgroud)

但是,请考虑配置执行环境以保留控制台窗口,而不是让程序对此负责.它用于输入用户输入并提供计算输出,而不是管理终端窗口.

如果你在Windows上,我觉得cmd.exe /K myProgram很有用 - /K运行你的程序然后保持命令提示打开.