我正在尝试制作一个程序来询问他们的名字,然后说"你好,(他们的名字)!" 背部.到目前为止,这是我的代码,"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)
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
运行你的程序然后保持命令提示打开.
归档时间: |
|
查看次数: |
212 次 |
最近记录: |