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

 wangbiao少爷 发布于 2023-02-06 20:33

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

#include 
#include 
using namespace std;

int main()
{
    string name;
    cout<<"What is your name?:";
    cin>>name;
    cout<<"Hello, "<

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

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

#include 
#include 
using namespace std;

int main()
{
    string name;
    cout<<"What is your name?: ";
    cin>>name;
    cout<<"Hello, "<

Lightness Ra.. 5

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

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

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

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

std::cin.ignore(std::numeric_limits::max(), '\n');
getchar();

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

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

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

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

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

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

    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    getchar();
    

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

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

    2023-02-06 20:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有