在我的电脑上要想通过 std::wcout输出 宽字符 需加入以下代码 #include <io.h> #include <fcntl.h> void main() { _setmode(_fileno(stdout), _O_U16TEXT); } 而且以后的输出不能用std::cout必须要用std::wcout…
std::cout << "ASCII and ANSI" << std::endl;std::wcout << L"INSERT MULTIBYTE WCHAR* HERE" << std::endl;…
转自:http://www.cnblogs.com/zplutor/archive/2010/11/27/1889227.html 在我刚开始学C/C++的时候,字符类型使用的都是char.接触Win32编程之后,养成了使用wchar_t的习惯,于是再写控制台程序的时候自然就使用wchar_t了.然而在控制台程序中使用宽字符会导致各种奇怪的问题,这些问题主要是在输出上.下面分享一下我在这方面的心得. 首先来看一下这段代码: #include <stdio.h> int main() { wpr…
有群友问类似问题,然后我编译了一下试试: #include <stdio.h> #include <wchar.h> #include <locale.h> int main(void){ wchar_t aa[] =L"测试看看asdf1234"; wchar_t *bb =L"C语言2333kkkdkkd"; //将本地环境设置为简体中文 setlocale(LC_ALL,"chs"); //使用通用的 w…
宽字符wchar_t 与 窄字符char 先说下窄字符char,这个大部分读者应该很清楚,char类型的变量占一个字节(byte)(也就是8个bit(比特)),能表示256个字符,那char的范围有两种 第一种(signed char):-128~127 第二种(unsigned char):0~255 (对char的范围感兴趣的读者可以看一下这篇文章:浅谈char类型范围) 但C标准并没有规定char 应该是unsigned还是signed,C标准定义了三种类型:char.signed cha…
#include <locale.h> setlocale(LC_ALL, "zh-CN"); wchar_t wch = L'我'; putwchar(wch); #define _CRT_SECURE_NO_WARNINGS #include <string.h> #include <stdio.h> #include <locale.h> #include <Windows.h> //求长度 int mywcslen(w…
1 多字节字符 ASCII码表:0 ~ 2^7-1 扩展ASCII码表:2^7 ~ 2^8-1 什么是GB2312:1980年,两个字节存储一个汉字:不通用,别国会有乱码. UCICODE:只有一个字符集:每个字符都是16位宽. 2 C语言中的宽字符 2.1 宽字符的使用 "中"字的编码: ASCII:d6 d0 UNICODE:4e 2d char x = '中'; //汇编代码中出现的是d0 wchar_t x1 = '中'; //汇编代码中出现的是d0 d6 wchar_t x1…
.. #include <iostream> #include <windows.h> #include <locale> //#include<wchar.h> //#include <stdlib.h> int main() { short sh; unsigned short sh1; sh = ; sh1 = ; std::cout << "short类型的sh的值是: " << sh <…
由于vs各版本之间存在字符设置不兼容问题,特总结char与tchar的互相转换函数,如下,在之后的工程中可以使用. void TcharToChar(const TCHAR * tchar, char * _char) { int iLength; //获取字节长度 iLength = WideCharToMultiByte(CP_ACP, 0, tchar, -1, NULL, 0, NULL, NULL); //将tchar值赋给_char WideCharToMultiByte(CP_AC…
C++输出中文字符 1. cout 场景1: 在源文件中定义 const char* str = "中文" 在 VC++ 编译器上,由于Windows环境用 GBK编码,所以字符串 "中文" 被保存为 GBK内码,编译器也把 str 指向一个包含有 GBK编码的只读内存空间.用 cout 输出 str 时, 由于中文Windows环境用GBK编码,所以把GBK编码的 str 内容输出到控制台,没问题. 场景2: 在Linux 下编辑一个文件 const char*…