qq_41517828 2018-08-13 08:37 采纳率: 25.9%
浏览 605
已结题

C++编程问题请大神赐教谢谢

代码如下,请问这段:
cin.clear();
while (cin.get() != '\n')
continue;
是啥意思,为什么输入错误程序就中止了呢?while循环里的语句是啥意思呢?cin.clear 是啥意思?

int fill_array(double ar[], int limit) {
double temp;
int i;
for (i = 0; i < limit; i++) {
cout << "Enter value#" << (i + 1) << ":";
cin >> temp;
if (!cin) {
cin.clear();
while (cin.get() != '\n')
continue;
cout << "Bad input;input process terminated.\n";
break;
}
else if (temp < 0)
break;
ar[i] = temp;
}
return i;
}

  • 写回答

4条回答

  • 大学问 2018-08-13 09:10
    关注

    cin是输入流
    语法如下:
    cin.clear(标识符);
    标识符号为:
    goodbit 无错误
    Eofbit 已到达文件尾
    failbit 非致命的输入/输出错误,可挽回
    badbit 致命的输入/输出错误,无法挽回
    若在输入输出类里.需要加ios::标识符号
    通过cin.clear,我们能确认它的内部标识符,如果输入错误则能重新输入.

    cin.get()获取控制台输入的一个字符
    cin.get()!='\n' 如果不是\n继续 continue

    评论

报告相同问题?