我有以下用C++编写的程序:
这个程序的问题是,如果用户输入一个负数,它不会被if(!cin)行捕获。我以为无符号整数是不能接受负数的。那么,为什么如果我输入一个负数来调整大小,它不会被if(!cin)捕获,程序会继续执行而不会出现错误消息?
我不能使用if(size < 0)。我想展示无符号整数是如何解决负输入问题的。
发布于 2012-10-18 23:55:22
检查if(!cin)将仅指示未读取任何内容,例如文件的末尾。
unsigned整数并不强制输入为正;它只是意味着该值将始终被解释为正(请参阅sign bit),如果该数字实际上为负,则会产生显著的效果。
最好的办法可能是输入一个带符号的整数,然后在代码中测试它是否为正。
https://stackoverflow.com/questions/12958589
复制相似问题