大神们帮忙看看下面这段代码为何报错(char16_t问题)
c++吧
全部回复
仅看楼主
level 3
ytskuh 楼主
初次尝试char16_t,结果这种问题怎么也解决不了,望大家指教
2017年02月04日 02点02分 1
level 3
ytskuh 楼主
我就是不知道怎么使用char16_t和char32_t
2017年02月04日 02点02分 2
level 3
ytskuh 楼主
并且,就算我使用wchar_t,尽管能通过编译,但是
程序运行错误。代码和情况如下
2017年02月04日 02点02分 3
level 16
1、不能从cin直接读char16_t,先读进string里再转码。
2、编译器不支持"chs" locale。
2017年02月04日 05点02分 5
level 3
ytskuh 楼主
嗯,确实不支持,那如何解决呢
2017年08月09日 06点08分 13
level 12
(cpp11)
第一 你不能直接读取char16_t 得先从char传(我记得有头文件封装了utf8toutf16的转换)或用io模板弄个char16_t的io
2017年08月09日 22点08分 14
你猜猜iostream的构造函数的访问规则是什么[阴险]?
2017年08月10日 03点08分
@夏威姨2014 我第二条指的是basic_istream和basic_ostream以及basic_iostream模板类[阴险]
2017年08月11日 00点08分
@Pumpkin_233 io模板的构造函数都是private的[阴险]
2017年08月11日 03点08分
level 9
用wcin和wcout
2017年08月10日 03点08分 15
level 12
(C++11)
想起来<codecvt>有个std::codecvt_utf8_utf16
这玩意能让UTF8和UTF16互转
转换之后你就能用std::cout了(不过 你得用一个srd::string或char*来存储转换后的字符串)(你的控制台编码必须是utf8不然会乱码)
2017年08月11日 12点08分 16
level 3
ytskuh 楼主
感谢解答,加以修改后能够通过编译。
但是看起来标准输出流似乎并不支持其输出(输出了字符所对应的数字),这又该如何处理呢
此外,介于这个问题,顺便问一下介于char和string可以接受中文字符,这是不是意味着可以直接使用string来处理中文呢?但实际操作中又时常出现乱码现象,我估计是因为中文错位了1个字节导致的,这又该如何解决呢
萌新期待指点
2017年08月23日 06点08分 17
1