我想在控制台中打印扩展的ascii字符,我尝试过这个:
std::cout << "╔══════════╦════════════════════════════════════════════════════════╗n";
std::cout << "║ ID:678 ║ Name: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ║n";
std::cout << "║ ║ Surname: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ║n";
std::cout << "║ ║ Gender: ▓▓▓▓▓▓ ║n";
std::cout << "║ ║ Age: ▓▓▓ ║n";
std::cout << "║ ║ Tel: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ║n";
std::cout << "║ ║ Adress: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ║n";
std::cout << "║ ║ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ║n";
std::cout << "║ ID Print ║ Hobbies: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ║n";
std::cout << "║ ║ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ║n";
std::cout << "║ ░░░░░░ ║ Additional İnformations: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ║n";
std::cout << "║ ▒▓▓▓▓▒ ║ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ║n";
std::cout << "║ ▓▓▓▓▓▓ ║ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ║n";
std::cout << "╚══════════╩════════════════════════════════════════════════════════╝n";
但是输出是这样的:
?????????????????????????????????????????????????????????????????????
? ID:678 ? Name: ???????????????????????????????????????? ?
? ? Surname: ???????????????????????????????????????? ?
? ? Gender: ?????? ?
? ? Age: ??? ?
? ? Tel: ??????????????????????????????? ?
? ? Adress: ????????????????????????????????????????? ?
? ? ????????????????????????????????????????????????? ?
? ID Print ? Hobbies: ???????????????????????????????????????? ?
? ? ????????????????????????????????????????????????? ?
? ?????? ? Additional ¦nformations: ???????????????????????? ?
? ?????? ? ????????????????????????????????????????????????? ?
? ?????? ? ????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????
但当我尝试这个:std::cout << char(200);
时,它成功地打印了'╔'性格所以我确信Console支持扩展的ascii字符。
所以;如何正确输出这些cout?
编辑:使用std::wcout << L"";
不起作用。
第2版:程序只能在Windows7或更高版本中运行。
第3版:
使用此代码打印卡片,
#include <fcntl.h>
#include <io.h>
_setmode(_fileno(stdout), _O_U16TEXT);
但是,我不能打印任何正常的cout字符,这会出错。(错误字符串示例:std::cout << "Hello!"
(
对于在windows上写作的人,可以应用以下内容:source(_setmode windows source(
所需库:
#include <fcntl.h>
#include <io.h>
将cout转换为Unicode:
_setmode(_fileno(stdout), _O_U16TEXT);
*重要提示:在这种风格中,您应该始终使用std::wcout<lt;L";为此。如果您的代码在其他行中包含std::cout,那么下面是解决方案:
在不需要特殊字符打印时,使用_setmode(_fileno(stdout), _O_TEXT);
将stdout设置回默认文本样式。