鱼C论坛

 找回密码
 立即注册
查看: 2403|回复: 1

关于peek和get的问题

[复制链接]
发表于 2020-6-9 12:20:26 | 显示全部楼层 |阅读模式
5鱼币
#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,请大神指教下!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-10 15:21:29 | 显示全部楼层
你输入字符a,cin>>i;这时i是a,你再执行下面的if语句,i的值是不会变的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表