【发布时间】:2020-12-15 04:23:26
【问题描述】:
更新 #2: Unicode 不能用于 Setfill。现在正在寻找替代品。
感谢所有帮助过的人!
更新:感谢 jkb,我意识到我正在使用指针。但是,现在我仍然坚持如何将 unicode 放入char 以便在SetFill() 中使用。这是我的新问题。
原问题:
我正在尝试为我的 Setfill() 使用 Unicode Character,但我不明白为什么这不起作用。 Setfill() 想要一个 Char,而 'line' 是一个在 std::cout 中显示得很好的 Char。但是我收到错误:“setfill 的字符类型错误”。
char line = u8"\u2501";
cout << setfill(line) << setw(10) << "┛"; // 错误:setfill 的字符类型错误
cout << line << endl; // 正确显示行
我已经搜索了与在 Setfill 中使用 Unicode 相关的内容,但我没有看到任何接近我需要的内容。上面的代码我试过了,直接粘贴了这个字符:Setfill('━'),但是还是不行。
如果我被卡住了,我希望能向正确的方向点头。
提前谢谢你!
编辑:我已经根据jkb所说的更改了第一行代码:
line 不是 char 类型,它是 char *(指针)类型。 – jkb
以前是这样的:
const char* line = u8"\u2501";
【问题讨论】:
-
line不是char类型,它是char *(指针)类型。 -
u8"\u2501"是char8_t[4],而不是char,并且无法将 Unicode 字符传递给它,因为代码点 > 127 需要超过 1 个字节