c++ - C++不等待输入

标签 c++

所以我一直在学习C++,并且正在研究猴子,看猴子做程序,我设法使第一个输入正常工作,但是第二个输入却直接跳过了它,我不知道为什么会得到任何帮助。

#include <iostream>
#include <string>
using namespace std;
char monkey_1;
char monkey_2;

int msmd()
{
    cout << "monkey one:"; cout << endl;
    cin >> monkey_1;
    system("cls");
    cout << "monkey two:"; cout << endl;
    cin.clear();
    cin >> monkey_2;
    cout << "waiting"; cout << endl;
    if (monkey_1 == monkey_2)
    {
        cout << "both monkeys are happy."; cout << endl;
    }
    else
    {
        cout << "the monkeys are upest."; cout << endl;
    }
    return 0;
}

void main()
{
    msmd();
}

最佳答案

您是否打算仅从输入中获取单个字符,因为猴子的类型为char?如果不是,请将其更改为string,否则每个cin仅分配一个字符。
如果要输入句子,则cin也会在空格上分开,因此,如果输入“其他”,则第一个cinsomething分配给monkey_1,第二个cin将自动将else分配给monkey_2。
为了解决这个问题,您可以使用getLine(cin,monkey_x)

关于c++ - C++不等待输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65030337/

相关文章:

c++ - 进度条不动

c++ - 为什么模板参数解包有时不适用于 std::function?

c++ - 通过 const 引用传递基本值真的会损害性能吗?

c++ - WMI 和 Windows 服务之间的通信

C++ 在运行时崩溃,但只是在某些时候

c++ - 实现成员函数(排序)

c++ - 如何在 C 或 C++ 中获取/链接外部函数?

c++ - 配置期间找到的库,但不是 make

c++ - 在模板定义中要求类型名的原因

c++ - 删除字符串时堆损坏