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

    评论

报告相同问题?

悬赏问题

  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝