为什么我的 cmd 消失了?我使用 cin.ignore(),但它没有效果!C++
Why my cmd disapears? I use cin.ignore() but it has no effect! 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())任何它不起作用的东西。
CIN>>筹码>>值得;
例如,在此行中,如果键入最后一个1
并按 Enter 键,则流中仍会保留 A n
未读状态。
当你执行cin.ignore();
时,它会提取剩余的字符,程序完成。将cin.ignore();
更改为cin.ignore(2);
,它应该可以工作。
相关文章:
- 警告处理为错误这里有什么问题
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 2D数组来自文本输入,中间有空格
- 函数向量_指针有不同的原型,我可以构建一个吗
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 有根的二进制搜索树.保留与其父级的链接
- 在计算中使用二的幂有多有利可图
- 有什么方法可以遍历结构吗
- 函数中堆分配的效果与缺少堆分配的情况
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 有一个打印语句的函数是一种糟糕的编程实践吗
- unique_ptr:在分配之前调用 reset 有什么效果
- 有提升一些东西到 fsync() 的效果
- 如何在C中获取char阵列的第一个X元素?提升效果是否有改进的方法
- 我怎样才能制作出具有电视效果的图像
- 我怎样才能有默认参数的效果与可变模板
- 有没有一种方法可以反转QWidget::setMask()函数或实现类似的效果