VC上尝试输入输出宽字符时发现问题

在VC上尝试输入输出宽字符时发现,wcout.imbue调用,居然会影响wcin
 wstring t;
 wcin >> t; //没问题

 wcout.imbue(locale("chs"));
 wcin >> t; //键入中文时有问题

而对wclog, wcerr调用imbue,则不对cin产生影响。也就是说,wcout和wcin之间有奇特的关系。对wcin调用imbue,不会影响wcout,反过来,对wcout调用imbue,则对wcin产生影响。很显然,丛语义学上来说,这是极不自然,而且极其隐晦。wcout和wcin从语义学上来说,这两者完全是独立的。我察看了源代码,看上去似乎是fgetc这个C库的缓冲处理上有问题,但没有细究下去。

我觉得,这是vc iostream库的bug.不知道我是否可以向ms提交该bug ^_^
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值