这是我的代码
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。谢谢你!!
发布于 2020-05-26 13:40:03
我想你是在问如何让cin在出错后恢复。为此,您必须调用
cin.clear();此外,丢弃错误后可能留下的任何挂起的输入也可能是一个好主意。对于该呼叫
cin.ignore(std::numeric_limits<std::streamsize>::max());您需要为numeric_limits类执行#include <limits>。
https://stackoverflow.com/questions/62015200
复制相似问题