21xrx.com
2024-12-22 22:45:13 Sunday
登录
文章检索 我的文章 写文章
C++怎么输出中文?
2023-07-05 01:29:46 深夜i     --     --
C++ 输出 中文

C++是一种常用的编程语言,但在输出中文时可能会遇到问题。在本文中,我们将介绍几种不同的方法来输出中文。

第一种方法是使用字符编码方式,通过转换Unicode码来输出中文。这种方式需要先将中文字符转换为Unicode码,然后再将Unicode码转换为ANSI码输出,代码如下:


#include <Windows.h>

#include <string>

#include <iostream>

int main() {

  SetConsoleOutputCP(65001);

  std::string str = u8"你好,世界!";

  std::wcout << std::wstring_convert<std::codecvt_utf8<wchar_t>>{}.from_bytes(str) << std::endl;

  return 0;

}

第二种方法是使用Windows API来输出中文。这种方式需要调用Windows API中的函数来输出中文,代码如下:


#include <Windows.h>

int main() {

  SetConsoleOutputCP(936);

  HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

  wchar_t str[] = L"你好,世界!";

  WriteConsoleW(hOut, str, wcslen(str), nullptr, nullptr);

  return 0;

}

第三种方法是使用第三方库来输出中文,比较常用的是Boost库和QT库。代码如下:


#include <iostream>

#include <boost/locale.hpp>

int main() {

  std::string str = u8"你好,世界!";

  std::cout << boost::locale::conv::from_utf<char>(str, "GBK") << std::endl;

  return 0;

}

无论使用哪种方法,输出中文需要注意的是,需要先设置输出的字符编码,否则中文字符会无法正常输出。各种方法适用的情况不同,可以根据实际情况选择适合自己的方式。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复