繁体   English   中英

cin.get()不起作用?

[英]cin.get() not working?

我第一次从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()将看到一个空缓冲区,一切都很好。

您可以使用

cin.ignore(256,'\n');

就在决赛之前

cin.get();

这会丢弃读取x和y时键入的无意的'\\ n'。 页面从关闭停止,直到根据需要再次按下按键。

它读取换行符,该换行符仍保留在输入流中,因为先前的读取可以从流中提取换行符。

看到这个:

cin >> x >> y;

它只读取两个整数,但不读取按下按钮时输入的换行符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM