while(cin>>n>>m) 这个语句可以一直输入直到结束,是因为用户重载了流输入运算符>>并且让它在输入出错的时候返回0,正确的时候返回1,对吗?
时间: 2024-05-25 11:12:26 浏览: 8
这个语句可以一直输入直到结束,是因为它利用了C++中的流输入运算符重载和输入流的fail状态来实现的。
当使用`cin>>n>>m`进行输入时,输入流会先读取n,然后读取m。如果读取成功,流输入运算符返回一个指向流的引用,即`cin`,而`cin`的bool类型的隐式转换会返回`true`。如果读取失败,流的状态会被设置为`fail`,同时返回一个指向流的引用,即`cin`,而`cin`的bool类型的隐式转换会返回`false`。
因此,当输入出错时,`while`循环会退出。当输入正确时,`while`循环会继续执行。这种方式可以很方便地实现输入多个数据的功能,不需要手动判断输入的数据个数是否达到要求。
相关问题
while(cin>>n)什么时候结束
当输入流(cin)无法继续读入数据时,即遇到文件末尾或者输入错误时,while(cin>>n)循环会结束。具体来说,有以下几种情况会导致循环结束:
1. 文件末尾:当从输入流读取数据时,如果已经读取到文件的末尾,则输入流无法继续提供数据。这时while(cin>>n)循环会结束。
2. 输入错误:如果从输入流读取数据时,输入的数据格式不符合要求或者输入错误,比如输入了非法字符,或者输入的数据类型不匹配等,输入流无法正确提供数据,while(cin>>n)循环会结束。
3. 遇到特定字符:在某些情况下,使用特定字符作为循环结束的标志。比如可以约定输入流遇到空格或者换行符时循环结束,或者输入特定字符如"q"作为结束符号等。
总之,while(cin>>n)会一直读取输入流中的数据,直到读取到文件末尾、输入错误或者遇到特定字符,才会结束循环。这种输入方式通常用于从标准输入中连续读取数据,直到不满足读入条件为止。
while(cin >> n,n)
while(cin >> n, n) 是一个常见的循环结构它的作用是在输入流(cin)中读取数据,并且只要读取成功且读取的值不为0,就会执行循环体内代码。这个循环结构通常用于读取一系列的输入数据,直到遇到特定的终止条件。
具体来说,while(cin >> n, n) 的执行过程如下:
1. 首先,cin >> n 会尝试从输入流(cin)中读取一个值,并将其赋给变量n。
2. 如果读取成功,则继续执行逗号后面的表达式n。
3. 如果读取失败(例如遇到文件末尾或者输入不合法),则循环终止。
4. 如果读取成功且n的值不为0,则执行循环体内的代码。
5. 循环回到第1步,继续读取下一个值。
这种循环结构常用于需要连续读取输入数据的场景,例如读取一系列整数、浮点数或者字符串,直到遇到特定的终止条件(例如输入0或者输入特定的字符串)为止。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)