首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如何理解while(cin>>i)

2012-04-19 
【求助】怎么理解while(cini)?代码如下:#includeiostreamusingnamespacestdintmain(){intiwhile(cin

【求助】怎么理解while(cin>>i)?
代码如下:
#include   <iostream>
using   namespace   std;

int   main(){
        int   i;
        while(cin> > i){
cout < <i < <endl;
        }
        return   0;
}
当输入:1   1   1

输出:
1
1
1
请教1个问题:
                  1.cin不是输入一个整形的数吗?  
                      但是这里连续输入了1_1_1就好比一个字符串了这里怎么理解呢?

[解决办法]
我觉得首先利用提取运算符“>>”从标准输入中提取出1 1 1,作为输入流,然后每循环一次,在从cin流中取出一个1给i,并且输出,空格是每一个整数的分隔符
[解决办法]
你只输入一个数cin>>i
所以当打空格的时候就表明你输完了一次
但是默认是回车才发送出去
所以1 1 1是输了三次i但是没发送
当回车时候就会循环三次
变成
1
1
1

[解决办法]
默认情况下,输入操作符忽略空白(空格、制表符、换行符、进纸和回车)。
如果不想跳过在while之前加上这句:

C/C++ code
cin >> noskipws;
[解决办法]
cin不是输入一个int,而是一个输入流!你在console输入的字符等会放在cin这个流中,cin>>i,是将流中的内容转换输入到i中,这时输入的时候遇到空格、制表符、换行符、进纸和回车,会当作输入操作完成!所以1 1 1就相当于是三个输入操作!

热点排行