c++ - cin.get() 不工作?

标签 c++

我是第一次从 PHP 使用 C++。我在玩一些代码。根据我的理解,cin.get(); 应该在我按下一个键之前阻止窗口关闭,但是它似乎没有工作,因为它之前的代码,我不知道知道问题出在哪里。这是我的代码:

#include <iostream>
#include <cstdlib>

using namespace std;

int multiply (int x, int y);

int main ()
{
    int x;
    int y;

    cout << "Please enter two integers: ";
    cin >> x >> y;

    int total = multiply(x, y);
    cout << total;

    cin.get();
}

int multiply (int x, int y) {
    return x*y;
}

最佳答案

放一个

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

>> x >> y; 之后(或在 cin.get() 之前)。

这会刷新 cin 的缓冲区并删除仍然存在的挂起的 \n,因为您 cin 读取 x 和 y 但也读取最后一次返回(在 y 之后)。这会在您调用 cin.get() 时读入。如果您刷新缓冲区,cin.get() 将看到一个空缓冲区,一切正常。

关于c++ - cin.get() 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8499816/

相关文章:

c++ - 算法运行时间

c++ - 区分头文件和编译器/语言标准/os/glibc

c++ - 使用两个图像设计 QPushButton

c++ - 在 C++ 中使用 fstream 创建和读取/写入文件

c++ - 自己调用拷贝构造函数

C++:当每个线程都应该同时执行 I/O 和 CPU 密集型任务时的多线程设计

c++ - 从存储在 ESP8266 中的 SPIFFS 中的变量设置全局对象

C++ std::sort 实现

c++ - libcurl 是否支持发送不加密的电子邮件?

c++ - 为什么模板实参用作另一个模板的模板参数时不能推导出来?