为什么我的cmd消失了?我使用cin.ignore()但它没有效果! C ++

时间:2012-04-19 00:10:28

标签: c++

我正在测试我的轮盘赌课程但是视觉工作室不让我看到输出,因为 cin.ignore()不起作用,我不知道这里发生了什么,

你能解释为什么我的cmd行窗口消失了,为什么 cin.ignore()在这段代码中永远不会被调用?

非常感谢你!

#include "Bet.h"
#include "Table.h"
#include <iostream>

using namespace std;
using namespace Roulette;


int main()
{
    cout << "Enter numbers for Split bet:" << endl;
    short answer;
    vector<short>* Selection = new vector<short>;
    for (short i = 0; i < 2; ++i)
    {
        cin >> answer;
        Selection->push_back(answer);
    }

    cout << "Enter how many chips and chip worth:" << endl;
    short chips, worth;
    cin >> chips >> worth;

    Bet* MyBet = new Bet(TableLayout::European, BetName::Split, chips, worth, Selection);

    Bet* Complex = new Bet(TableLayout::European, BetName::VoisinsDeZero, 1, 1);

    Complex->PrintProperties();

    cin.ignore(); // THIS IS IGNORED!!! WHY??? please...

    delete Selection;
    Selection = nullptr;
    delete Complex;
    delete MyBet;
    return 0;
}

编辑:

我按F5运行程序,然后输入数字如下:

1进入 2进入 1进入 1输入

并且这里cmd消失了,程序会跳过cin.get()(或cin.ignore()),无论它什么都不起作用。

1 个答案:

答案 0 :(得分:1)

  

cin&gt;&gt;芯片&gt;&gt;值得;

在此行中,例如,如果您输入最后一个1并按Enter键,则流中的\n仍会保留未读。

执行cin.ignore();时,它会提取剩余字符并完成程序。将cin.ignore();更改为cin.ignore(2);,它应该有效。