c++之cout、wcout、printf、wprintf不显示汉字或者遇到汉字即中断显示的原因

原因:机器本地性引起,cout输出的时候,其并不知道你输出的字符编码是代表的什么语言,所以会根据你计算机的区域设置而确定,但我的计算机设置的是英文的,所以将字符编码按照英文进行处理,很明显也就很快显示不出来了,因为cout发现这根本不是英文,不知道是什么玩意。

如果你的计算机本来就设置的中文区域,就不会出现这样的问题。

关键是wcout为何也不能输出中文呢,其处理的不是utf-16吗?这难道还要分计算机区域设置,不是全球化编码吗?原因很简单,utf-16有代理页一说,还是和你计算机相关

wcout输出时显示不了中文,加上下面这句就行了。

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


Primary language


Sublanguage


Language string


Chinese


Chinese


"chinese"


Chinese


Chinese (simplified)


"chinese-simplified" or "chs"


Chinese


Chinese (traditional)


"chinese-traditional" or "cht"


Czech


Czech


"csy" or "czech"


Danish


Danish


"dan" or "danish"


Dutch


Dutch (default)


"dutch" or "nld"


Dutch


Dutch (Belgium)


"belgian", "dutch-belgian", or "nlb"


English


English (default)


"english"


English


English (Australia)


"australian", "ena", or "english-aus"


English


English (Canada)


"canadian", "enc", or "english-can"


English


English (New Zealand)


"english-nz" or "enz"


English


English (United Kingdom)


"eng", "english-uk", or "uk"


English


English (United States)


"american", "american english", "american-english", "english-american", "english-us", "english-usa", "enu", "us", or "usa"


Finnish


Finnish


"fin" or "finnish"


French


French (default)


"fra" or "french"


French


French (Belgium)


"frb" or "french-belgian"


French


French (Canada)


"frc" or "french-canadian"


French


French (Switzerland)


"french-swiss" or "frs"


German


German (default)


"deu" or "german"


German


German (Austria)


"dea" or "german-austrian"


German


German (Switzerland)


"des", "german-swiss", or "swiss"


Greek


Greek


"ell" or "greek"


Hungarian


Hungarian


"hun" or "hungarian"


Icelandic


Icelandic


"icelandic" or "isl"


Italian


Italian (default)


"ita" or "italian"


Italian


Italian (Switzerland)


"italian-swiss" or "its"


Japanese


Japanese


"japanese" or "jpn"


Korean


Korean


"kor" or "korean"


Norwegian


Norwegian (default)


"norwegian"


Norwegian


Norwegian (Bokmal)


"nor" or "norwegian-bokmal"


Norwegian


Norwegian (Nynorsk)


"non" or "norwegian-nynorsk"


Polish


Polish


"plk" or "polish"


Portuguese


Portuguese (default)


"portuguese" or "ptg"


Portuguese


Portuguese (Brazil)


"portuguese-brazilian" or "ptb"


Russian


Russian (default)


"rus" or "russian"


Slovak


Slovak


"sky" or "slovak"


Spanish


Spanish (default)


"esp" or "spanish"


Spanish


Spanish (Mexico)


"esm" or "spanish-mexican"


Spanish


Spanish (Modern)


"esn" or "spanish-modern"


Swedish


Swedish


"sve" or "swedish"


Turkish


Turkish


"trk" or "turkish"

时间: 2024-11-10 07:42:57

c++之cout、wcout、printf、wprintf不显示汉字或者遇到汉字即中断显示的原因的相关文章

C++模板之隐式实例化、显示实例化、隐式调用、显示调用和模板特化详解

代码编译运行环境:VS2012+Debug+Win32 模板的实例化指函数模板(类模板)生成模板函数(模板类)的过程.对于函数模板而言,模板实例化之后,会生成一个真正的函数.而类模板经过实例化之后,只是完成了类的定义,模板类的成员函数需要到调用时才会被初始化.模板的实例化分为隐式实例化和显示实例化. 对函数模板的使用而言,分为两种调用方式,一种是显示模板实参调用(显示调用),一种是隐式模板实参调用(隐式调用).对于类模板的使用而言,没有隐式模板实参和显式模板实参使用的说法,因为类模板的使用必须显

《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发一套设备驱动,同时支持串口和网络通讯. <连载 | 物联网框架ServerSupe

linux 查找指定内容并显示指定行数的命令,显示匹配行和行号

grep -i "desktop-printing-0.19-20.2.el5.x86_64" -n -A 10 install.log linux 查找指定内容并显示指定行数的命令,显示匹配行和行号,布布扣,bubuko.com

java显示本地磁盘所有盘符,显示桌面路径

import java.io.File; import javax.swing.filechooser.FileSystemView; /** 显示本地磁盘根盘符,显示桌面路径 */ public class RDDemo { static File[] files; public static void main(String[] args) { FileSystemView sys = FileSystemView.getFileSystemView(); files = sys.getRo

在Eclipse中JFrame自定义图标可以显示,但是导出JAR之后无法显示

在我的项目中,一开始我使用这种方式构造图片路径,然后将其设置到JFrame中即可以显示自定义图标 String imagePath = System.getProperty("user.dir") + "/image/icon.png";// 构造图片的路径 Image imageIcon = Toolkit.getDefaultToolkit().getImage(imagePath); jFrame.setIconImage(imageIcon); 项目路径如下

CSS实现div内文字显示两行,超出两行部分省略号显示

在搭建前台文章列表中,需要实现div内文字显示两行,超出的则省略号显示. 找了很多,都貌似只能一行显示.最后在百度知道找到答案. 答案转自百度知道,题主的自答. 用的是-webkit-私有属性.text-overflow: -o-ellipsis-lastline;overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical; 另有回

IE8 如何 不显示 选项 卡,直接在任务显示 各个页面?

IE8  如何 不显示 选项 卡,直接在任务显示 各个页面? 在  工具->Internet 选项(o) ->常规--选项卡-设置->把第一个勾去掉  “启用选项卡浏览(需要重新启动 Internet Explorer)”

单行居中显示文字,多行居左显示,最多两行超过用省略号结尾

首先是单行居中,多行居左 居中需要用到 text-align:center,居左是默认值也就是text-align:left.如合让两者结合起来达到单行居中,多行居左呢?这就需要多一个标签,假设一开始我们定义如下: <h2>单行居中,多行居左</h2> 现在,我们在 h2 中间,嵌套多一层标签 p: <h2><p>单行居中,多行居左</p></h2> 我们让内层 p 居左 text-align:left,外层 h2 居中 text-a

最新javascript自动按比例显示图片,按比例压缩图片显示

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

转:zTree树控件key配置之title:zTree树节点名称过长如何省略显示且鼠标移入节点上能够显示全称

当树节点的名称有些很长时,全部显示出来显得很拥挤的情况下,我们会想到用省略节点名称来代替,当鼠标移入节点时能够显示该节点的全称.这样我们应该如何做呢? 首先,我们要在树的节点内多增加一个属性用于设置该节点的全称,这里我们以title名称为例吧,示例代码如下所示: view sourceprint? 1.{ id:233, pId:23, name:"叶子节点233...",title:"叶子节点23333434343434"}, 2.{ id:234, pId:23