ASIDE 发表于 2020-6-9 12:20:26

关于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,请大神指教下!

梦想灬远帆 发表于 2020-6-10 15:21:29

你输入字符a,cin>>i;这时i是a,你再执行下面的if语句,i的值是不会变的
页: [1]
查看完整版本: 关于peek和get的问题