我遇到了问题。我有一个分割编码。
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
当我通过控制台输入数组时,cin>>MassChar;它接受一种编码,其中 1 个字符存储在第一个元素中。 “Hello”一词需要一个至少包含 7 个元素的数组。当我在 code 中分配一个值时char MassChar[]="Привет";,1 个字符需要 2 个元素,当输出数组的一个元素时,它输出 M 或 O。单词“Hello”需要一个至少包含 13 个元素的数组。
如何使所有内容与第一种情况相同(1 个字符 = 1 个元素)。我马上说:wchar_t和char16_t不需要加。
向量长度为 13 个字符,因为每个非 ASCII 字符使用 2 个字节,6*2=12(Hello),最后一个字符 \0 为空,表示行结束。您可以针对这种情况创建自己的类并重载索引运算符。
输出将在控制台中:
文件编码 65001。