读书人

怎么保证输入(使用cin)安全性和鲁棒性

发布时间: 2013-01-23 10:44:49 作者: rapoo

如何保证输入(使用cin)安全性和鲁棒性
今天做了微软的几道试题,发现几乎都要求输入,那么使用C++输入我想最容易的是cin了吧,还想用stringstream,scanf?
针对cin其实有很多可以研究的地方如,cin.clear(),cin.fail(),cin.sync().你要输入一个整数,如
int temp;cin>>temp;cin.fail()或者cin.good()不一定反映出错误,比如输入1.1不报错。
亲们,如何保证查出1.1这种带小数的输入错误呢?
[解决办法]

引用:
比如输入1.1不报错。
亲们,如何保证查出1.1这种带小数的输入错误呢?


不是错误,当然不报错
缓冲里的 1.1 可以被cin >>i >>f; 得到 i=1 和 f=0.1
如果你希望输入的 1 后面必须是白空格才算“正确”,则可以这样
int main()
{
int i=0;
cin >>i;
bool re=isspace(cin.peek());

if(!re)
cout <<"something wrong" <<endl;

return 0;
}


如果还有更多要求,则须有相应的代码去处理

读书人网 >C++

热点推荐