您的位置:首页 > 编程语言 > C语言/C++

C++常见字符输入的做法

2016-04-12 21:08 330 查看
每次读取一个字符,直到遇到EOF的输入循环的基本设计如下:

cin.get(ch);
while (cin.fail() == false)
{
...
cin.get(ch);
}


可以在上述代码中使用一些简捷方式。!操作符可以将true或者false切换为true。可以使用次操作符将while测试改写为

while (!cin.fail())


cin.get(char)方法的返回值是一个cin对象。不过,istream类提供了一个可以将istream对象(如cin)切换为bool值的函数;当cin出现在需要bool值的地方(比如在while循环的测试条件中)时,该转换函数将被调用。另外如果最后一次读取成功了,则转换得到的bool值为true,否则为flase,这意味着可以将上述的while测试改写为这样

while(cin)


这比!cin.fail()和!cin.eof更通用,因为它可以检测到其他失败的原因,比如磁盘故障。

最后,由于cin.get(char)的返回值是cin,因此可以将循环精简成这种格式

while (cin.get(ch))
{
...
}


这样,cin.get(char)只被调用一次,而不是两次:循环前一次,结束后一次。为判断循环测试条件,程序必须首先调用cin.get(ch)。如果成功,则将值放入ch中,然后,程序获得函数调用的返回值,即cin。接下来,程序对cin进行了bool转换,如果输入成功,则结果为true。否则为false。3条指导原则(确定结束条件,对条件进行初始化以及更新条件)全部被放在循环测试条件中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: