读书人

如何理解while(cingt;gt;i)

发布时间: 2012-04-19 14:36:43 作者: rapoo

【求助】怎么理解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就相当于是三个输入操作!

读书人网 >C++

热点推荐