`
guoyiqi
  • 浏览: 968494 次
社区版块
存档分类
最新评论

用C++处理汉子要注意的细节

 
阅读更多

常见操作cin>>chgetline(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(0ios::beg);

fin.seekg(0,ios::beg);

3读文件一直到文件末尾

while(true)

{

fin.get(ch);

if(fin.eof())

break;

//dosometing

}

<!--EndFragment-->

C++允许多读一次,读data_n之后,eof().此时读失败,eof()返回真;而读到lastdata时一切正常此时eof()并不为真。

4汉子处理,宽字节字符类型

4.1宽字节类型的声明

wchar_tch=L'a';//宽字符类型

wstrings=L"a";//宽字符串类型

wfstreamf;//宽文件流类型

wcin>>//宽输入流对象

wcout<<//宽输出流对象

4.2宽字节流对象在使用之前要本地化

wifstreamfin;

fin.imbue(locale("chs"));

wcin.imbue(locale("chs"));

wcin>>temp;

wcout.imbue(locale("chs"));

wcout<<ch;

<!--EndFragment-->
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics