吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 513|回复: 18
收起左侧

[求助] C++在控制台打印宽字符

[复制链接]
aoyu321 发表于 2024-6-13 10:59
程序运行无报错,但是宽字符无法显示,应该怎样调整终端设置和代码呢

[C++] 纯文本查看 复制代码
#include <iostream>

int main() {
    // This would be an error - narrowing conversion of '14851492' from 'int' to 'char'
    // char heart{'&#10084;'};
    // char word {'你'};

    wchar_t heart{L'&#10084;'};
    wchar_t word{L'你'};
    std::wcout << L"你好 " << heart << word;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

bester 发表于 2024-6-13 11:42
要么你转换,要么你设置一下代码页 SetConsoleOutputCP(65001)
 楼主| aoyu321 发表于 2024-6-13 11:51
bester 发表于 2024-6-13 11:42
要么你转换,要么你设置一下代码页 SetConsoleOutputCP(65001)

设置代码页也不行,窗口空白。代码如下:

[C++] 纯文本查看 复制代码
#include <iostream>
#include <windows.h>

int main() {
    // This would be an error - narrowing conversion of '14851492' from 'int' to 'char'
    // char heart{'&#10084;'};
    // char word {'你'};

    SetConsoleOutputCP(65001);

    wchar_t heart{L'&#10084;'};
    wchar_t word{L'你'};
    std::wcout << L"你好 " << heart << word;
}
mt324 发表于 2024-6-13 12:01
菜鸟小白 发表于 2024-6-13 12:21
屏幕截图 2024-06-13 122123.png
go4399 发表于 2024-6-13 12:45
'&#10084;' 这种写法没见过
 楼主| aoyu321 发表于 2024-6-13 13:54
go4399 发表于 2024-6-13 12:45
'&#10084;' 这种写法没见过

这是我粘贴代码的时候,论坛自动转换了字符。把它当成一个普通的 unicode 字符即可。实际上它是一颗红心。
 楼主| aoyu321 发表于 2024-6-13 14:01
 楼主| aoyu321 发表于 2024-6-13 14:03
mt324 发表于 2024-6-13 12:01
locale loc("chs"); wcout.imbue(loc);

不行
菜鸟小白 发表于 2024-6-13 14:34
屏幕截图 2024-06-13 143351.png
[C++] 纯文本查看 复制代码
#include <Windows.h>
#include <iostream>

int main() {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleOutputCP(CP_UTF8);
    SetConsoleMode(hConsole, ENABLE_VIRTUAL_TERMINAL_PROCESSING);
    WriteConsoleW(hConsole, L"这是一个笑脸:&#128522;\n", 11, NULL, NULL);
    return 0;
}
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-13 11:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表