C/C++ cout/wcout输出

最后更新于:2020-07-27 21:21:53

一.cout/wcout简介

C语言中可以分别使用printf函数wprintf函数输出多字节字符串和unicode字符串,在C++中同样有相应的函数来分别输出多字节字符串和unicode字符串;

输出多字节字符串,使用cout;
输出宽字节字符串,使用wcout;

unicode和多字节区别 文章中我们有提到:unicode编码下,字符串对应的类型:wchar_t / WCHAR;多字节编码下,字符串对应的类型:char / CHAR

typedef char CHAR;
typedef wchar_t WCHAR;

二.cout/wcout函数使用

如果使用wcout输出中文,通用容易产生中文乱码问题,具体原因和wprintf输出中文乱码原理一样,解决办法:将本地语言设置为中文即可wcout.imbue(locale("chs"))

/************************************************************************/
/*@文件名      : cout/wcout.cpp
/*@日  期      : 2020/6/17 19:37
/*@作  者      : 猿说编程
/*@公众号      : 猿说编程
/*@博客        : www.shuopython.com
/*@描述        : cout/wcout区别 - C/C++教程
/************************************************************************/

#include "stdafx.h"
#include <stdio.h>
#include "windows.h"
#include <Locale.h> //需要包含头文件
#include "iostream"
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    char str1[] = "c/c++教程 - 猿说编程";
    wchar_t str2[] = L"c/c++教程 - 猿说编程";

    wcout.imbue(locale("chs"));     // 将wcout的本地化语言设置为中文,解决unicode中文乱码问题

    cout << "str1:" << str1 << endl;
    wcout << "str2:" << str2 << endl;


    system("pause");

    return 0;
}

输出:
str1:c/c++教程 - 猿说编程
str2:c/c++教程 - 猿说编程
请按任意键继续. . .


猜你喜欢

1. 三目运算符

2. 逗号表达式

3. wprintf输出中文乱码

4. char和wchar_t相互转换

5. unicode和多字节区别




转载请注明: 猿说编程 » C/C++教程 » cout/wcout输出



技术交流、商务合作请直接联系博主
扫码或搜索:猿说编程

python/C++教程

猿说编程
微信公众号 扫一扫关注