c++ 输出多字节汉字

字符串a按照阅读来说只有17个字符,但占用的字节数是47个字节,每一个汉字占3个字节。

输出的时候一个字节一个字节的输出,不加分割,结果是正常显示的汉字,控制台自动的将3个字节识别成一个字符显示了。

输出的时候一个字节一个字节有间隔的输出,那么是按照ascll的形式输出的为乱码。

#include <string>
#include <iostream>
#include <string.h>
#include <bitset>

using namespace std;

int main()
{
    string a="爱上大欧式对哦我的hi哦啊为何东平";
    cout<<a.size()<<endl;
    cout<<a.length()<<endl;
    for(int i=0;i!=a.size();i++)
        cout<<a[i];
    cout<<endl;
    for(int i=0;i!=a.size();i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}

结果:

47
47
爱上大欧式对哦我的hi哦啊为何东平
� � � � � � � � � � � � � � � � � � � � � � � � � � � h i � � � � � � � � � � � � � � � � � � 
文章目录