cin
cin的相关函数 get getline >> ignore
cin cout 都关联一个行缓冲区。按下enter键,生成一个’\n’ 在缓冲区中,同时也就可以操作这一行了。
cin.get()
从缓冲区取一个字符。cin.getline()
从缓冲区取一行。>>
在缓冲区中读取一个>>
后面类型的内存大小。不会读入空格,遇到空格就不读了。cin.ignore()
cin.ignore(num,ch) //从输入流cin中提取num个字符,遇到ch则停止
cin.ignore(num) //直接从输入流提取num个字符,输入的字符数量要大于num
cin的状态
cin.eof()
若流的eofbit
置位,返回truecin.fail()
若流的failbit
或badbit
置位,返回truecin.bad()
若流的badbit
置位,返回truecin.good()
若流处于有效转态,返回truecin.clear()
将流的所有状态复位
// 通过检查流的不同转态,做不同的处理
istream &f(istream &in)
{
int v;
while (in >> v, !in.eof())
{
if (in.bad())
throw runtime_error("IO流错了");
if (in.fail())
{
cerr << "数据错误,亲重试" << endl;
in.clear();
in.ignore(100, '\n');
continue;
}
cout << v << endl;
}
in.clear();
return in;
}
文件结束符 EOF=-1
windows
中ctrl+z
Unix
中ctrl+d