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

本文详细介绍了C++中常见的IO流操作,包括cin输入时的行为特点、如何通过getline读取一行字符并处理留下的/n字符,以及如何定位文件指针和读取文件直至末尾。此外还介绍了宽字符类型及其在C++中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常见操作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(0,ios::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-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值