我有关于 cin.unget()
函数的一些疑惑,希望有人能够解答。请考虑以下代码:
void skip_to_int()
{
if (cin.fail()) { // we found something that wasn’t an integer
cin.clear(); // we’d like to look at the characters
for (char ch; cin>>ch; ) { // throw away non-digits
if (isdigit(ch) || ch=="-") {
cin.unget(); // put the digit back,
// so that we can read the number
return;
}
}
}
error("no input"); // eof or bad: give up
}
如果
cin.unget()
将数字放回到输入流中再次读取,那么我不是会重复读取同一个字符进行条件检查,从而陷入无限循环吗?