使用wcout以C ++奇怪的行为在控制台上打印wchar_t表情符号

时间:2016-04-14 21:14:31

标签: c++ unicode cout emoji wchar

我正在尝试在Mac OS X环境下用C ++在标准输出控制台上打印表情符号 - clang。

第一个代码正常运行:

#include <iostream>
#include <cwchar>

int main(int argc, const char *argv[]){
  char myEmoji[4] = "⛩";
  std::cout << "emoji example: " << myEmoji << std::endl;
  return 0;
}

在控制台上我可以看到:

./emoji ; exit
emoji example: ⛩
logout

当我尝试这个时,它对我意外地起作用:

#include <iostream>
#include <cwchar>

int main(int argc, const char *argv[]){
  wchar_t myEmoji = L'⛩';
  std::wcout << "emoji example: " << myEmoji << std::endl;
  return 0;
}

这次我得到了:

./emoji ; exit
emoji example: logout

我哪里错了?

0 个答案:

没有答案