输入 ctrl + x 后如何再次 cin (cin<<x) 循环(cin 一个结构)
How to cin again after enter ctrl + x in a while (cin<<x) loop (cin a struct)
这是我的代码
stream& operator>>(istream& is, fraction& f)
{
is >> f.numerator;
cout << "/";
is >> f.denominator;
}
。
void insertFraction(fraction*& f, int& n, fraction x)
{
int m = n + 1;
fraction* fNew = (fraction*)realloc(f, m * sizeof(fraction));
if (fNew != NULL)
{
fNew[n] = x;
n++;
f = fNew;
}
}
。
void enterFraction(fraction*& f, int& n)
{
fraction x;
f = NULL;
n = 0;
int i = 1;
cout << "Enter fraction " << i << " : n";
while (cin >> x)
{
insertFraction(f, n, x);
i++;
cout << "Enter fraction " << i << " or enter Ctrl + X to stop: n";
}
}
问题是,调用函数 enterFraction 后,我可以再次使用 cin,因为 Ctrl + X,请帮我在函数 enterFraction 之后再次使用 cin。谢谢!!
我想您是在问如何在出错后cin
恢复。为此,您必须致电
cin.clear();
此外,丢弃错误后可能留下的任何挂起输入可能也是一个好主意。对于那个电话
cin.ignore(std::numeric_limits<std::streamsize>::max());
您需要#include <limits>
numeric_limits
类。
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- C++中的cin.ignore()函数不适用于整个流
- 呼叫运营商<<临时
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- Problems with std::cin.fail()
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- 由cin中的字符串中未捕获空白引起的分割错误
- 在C++中使用Cin,我如何在1行中输入
- 将 cin 限制为只有一个
- cin >> int 给定一个字符串将 int 赋值为 0
- istream std::cin如何修改自定义istream缓冲区
- C++ 将 CIN 值存储到任何类型的数组中
- 为什么无论你输入什么,这"while(cin.get(str,3))"只运行一次?
- cin 的十进制输入验证?
- Turbo C++ cin() 不能与 gets() 一起使用
- 使用 cin 时接受小数点后的 2 位数字
- 在 std::getline 和 std::cin 期间卡在循环中
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 为什么我的两个 cin 语句没有在程序结束时运行?