当前位置: 代码迷 >> 综合 >> cin.clear(); __ cin.sync(); __ cin.ignore();
  详细解决方案

cin.clear(); __ cin.sync(); __ cin.ignore();

热度:13   发布时间:2023-12-06 05:22:59.0

//cin.clear();清除 cin 的错误状态 将错误标识改为默认值 0cin.sync();清空缓冲区 // cin 遇上空白符时停止输入 且优先读取缓冲区数据 不会再次请求输入eg. str1_str2\n // _ ( 空格 )cin 读取 str1 后, 下一个 cin 读取 _str2\n, 不会再次请求输入 cin.ignore(); // istream& ignore( int n=1,int ch=EOF );忽略输入中的 前 n 个字符后停止 或 第一次遇上字符 ch 就停止( ch也被忽略 )两个参数缺省时 cin.ignore(); == cin.ignore( 1,EOF );

//
#include<bits/stdc++.h>
using namespace std;int main()
{int n=0; cin>>n; cout<<n<<endl;      // 输入: a 输出: 0if( n ) printf("yes\n");else    printf("error\n");  // 输出: errorcin>>n; cout<<n<<endl;      //  输出: 0 ( 没有请求输入!!! 说明输入错误 ) return 0;
}

//
#include<bits/stdc++.h>
using namespace std;int main()
{int n=0; cin>>n; cout<<n<<endl;      // 输入: a 输出: 0if( n ) printf("yes\n");else    printf("error\n");  // 输出: errorcin.clear();                // 清除 cin 的错误状态 将错误标识改为默认值 0cin.sync();                 // 用于清空缓存区 不清空缓冲区 cin 还是读取 a 输入再次错误cin>>n; cout<<n<<endl;      // 输入: 1 输出: 1return 0;
}

  相关解决方案