|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目是:输入任意整数和空格,求整数之和。
小甲鱼老师给出的程序是:
#include<iostream>
using namespace std;
int main()
{
int i,sum = 0;
cout<<"请输出一组数和任意空格:"<<endl;
while (cin >> i)
{
sum += i; //疑惑在这里
while (cin.peek ( ) == ' ') //和这里
{
cin.get( );
}
if (cin.peek()=='\n')
break;
}
cout << sum << endl;
return 0;
}
问题1:while(cin>>i)
sum+=i;
【i定义为整数,这句即:当输入的i为整数时,sum+=1. 那么输入流中的空格是当做Ascll进入循环吗?如果是,那么下一句中的sum += 1,不是就会加上空格的ascll码了吗?如果不是,那字符空格都进入不 了循环,为什么还要写下面的 while(cin.peek( ) == ' ') cin.get( ) ; ?】
问题2:
由于上面疑惑,我想知道 while(cin.peek( ) == ' ') cin.get( ) ; 中执行的是什么,就把cin.get( )改为 cout<<'#'; 没想到执行的时候,不断的输入# 成为了死循环,这是怎么回事?
大虾们能帮我解答下吗?我是新手,问题也许很白痴,勿喷哦~ |
|