作者chchwy (mat)
看板NTUE-CS100
标题Re: [课业] 程设重点提示
时间Mon Nov 19 23:37:40 2007
关於老王要求输入文字後
程式不能爆炸的简易版解决办法
先讲原理
int x=0;
cin >> x;
//假设这时候user输入文字a
//喂cin吃a,因为x是整数,cin会拒绝。
//拒绝後cin干了两件事
//1. cin.fail()会传回true,表示从键盘读取失败
//2. 程式接下来的cin全部失效
//
//所以要开个if(cin.fail()){}来处理读取失败後的情况
sample code
===============================
#include<iostream>
using namespace std;
int main(){
int x=0;
cout << "请输入一个整数:";
cin >> x;
if(cin.fail()){
cout << "error!" << endl; //读取失败
cin.clear(); //clear() 把错误讯息清掉,cin才能恢复功能
cin.ignore(); //ignore() Buffer里面可能还有垃圾,清乾净
// 下次cin才能读到正确的值。
}else{
cout << "get number! x=" << x << endl;
}
return 0;
}
==============================
--
-- P_Mat <无名个人版> bbs.wretch.cc
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.68.15.109
※ 编辑: chchwy 来自: 203.68.15.109 (11/19 23:41)
1F:推 shinemon:建中哥~酷! 那个第四章也顺便一下吧~哈 11/20 00:11
2F:→ WAYS22275:谢~~~~~~~~~~Y 11/21 02:44