如何解决表示错误的扩展字符
我找不到任何与我的问题相关的答案,我想要一个像“╔==╗”这样的字符串,但表示的是错误的字符而不是它们。我发现了这个问题,那是因为有符号字符,并且每个字符的值与元素的 ascii 表值不同。我如何在 C++ 中使用 char 来做到这一点?
int main() {
char a[] = "╔══╗";
std::cout << a << std::endl;
}
解决方法
使用std::wstring
(包含在<string>
中)和L"..."
:
#include <string>
int main(/**/)
{
std::wstring wstr = L"╔══════════════╗";
}
注意:没有好的跨平台方式打印这样的字符串。参见How to print a wstring?、How to print a wstring on MacOs or Unix?、C++ wide character locale doesn't work。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。