关于peek和get的问题
#include<iostream>using namespace std;
int main()
{
int a;
int sum;
while(cin>>a)
{
sum+=a;
while(cin.peek()==' ')//观测到当前字符为空格的话
{
cin.get(); //从流中提取当前的空格
}
if(cin.peek()=='\n') //观测到当前字符为换行符的话直接终止
break;
}
cout<<"结果是:"<<sum<<endl;
return 0;
}
已知上面的代码中cin.get()的作用是从流中提取当前的空格,然后想将上面的方法应用到字符中,如下:
#include<iostream>
using namespace std;
int main() {
cout << "请输入字符:";
char i;
cin >> i;
if (cin.peek() == 'a') {
cin.get();
}
cout << "结果是:" << i << endl;
return 0;
}
输入字符a,通过cin.get()提取之后,i 应该为空,但结果显示 i 还是为a,请大神指教下!
你输入字符a,cin>>i;这时i是a,你再执行下面的if语句,i的值是不会变的
页:
[1]