常见操作 cin>>ch getline(cin,ch) cin.get(ch) 的注意事项
Ø fin>>a 吃掉a之前的所有空白字符(空格,回车,tab键),后面遇到空白符结束,但并不吃掉后面的空白符
Ø getline(cin,ch) 刚开始遇到'/n' 结束,并吃掉。结尾遇到'/n'结束,并吃掉
注:这里尤其要注意有可能cin>>ch ;执行时在流缓冲区中留下了一个'/n',恰好碰到了getline(cin,ch)的执行。避免的方法是cin>>ch;cin.ignor();
Ø fin.get(ch) 吃掉一个字符,把这个字符赋给ch
2 定位文件指针
fout.seekp(0,ios::beg);
fin.seekg(0,ios::beg);
3 读文件一直到文件末尾
while(true)
{
fin.get(ch);
if(fin.eof())
break;
//do someting
}
C++ 允许多读一次,读完data_n之后,读eof().此时读失败,eof()返回真;而读到last data 时一切正常此时eof()并不为真。
4 汉子处理,宽字节字符类型
4.1 宽字节类型的声明
wchar_t ch=L'a'; //宽字符类型
wstring s=L"a";//宽字符串类型
wfstream f;//宽文件流类型
wcin>> //宽输入流对象
wcout<< //宽输出流对象
4.2 宽字节流对象在使用之前要本地化
wifstream fin;
fin.imbue(locale("chs"));
wcin.imbue(locale("chs"));
wcin>>temp;
wcout.imbue(locale("chs"));
wcout<<ch;