输出使用 cout 转换为 ASCII 的文本时输出格式不正确,C++

Malformed output when outputting text converted to ASCII with cout, C++

本文关键字:输出 格式 不正确 C++ 文本 ASCII cout 转换      更新时间:2023-10-16

我正在做一个简单的终端游戏。但是当我尝试将一些输出到 ASCII 转换后的文本时。我得到格式错误的输出。

法典;

cout << "   _________    _____   ____     _______  __ ___________ "<<'n';
cout << " / _____    /     _/ __    /  _   / // __ _  __  "<<'n';
cout << " / /_/  > __ |  Y Y    ___/  (  <_> )   /  ___/|  | /"<<'n'; 
cout << " ___  (____  /__|_|  /___  >  ____/ _/  ___  >__|   "<<'n';
cout << "/_____/     /      /     /                   /       "<<'n';

输出:

_________    _____   ____     _______  __ ___________
/ _____    /     _/ __    /  _   / // __ _  __
/ /_/  > __ |  Y Y    ___/  (  <_> )   /  ___/|  | /
___  (____  /__|_|  /___  >  ____/ _/  ___  >__|
/_____/     /      /     /                   /

C++使用字符串中的作为转义字符,因此它不直接显示,但您必须使用\来显示反斜杠。这样做的缺点是,之后的字符串可能看起来与程序输出非常不同:

std::cout << "   _________    _____   ____     _______  __ ___________ "        <<'n';
std::cout << " / ___\__  \  /     \_/ __ \   /  _ \  \/ // __ \_  __ \ "<<'n';
std::cout << " / /_/  > __ \|  Y Y  \  ___/  (  <_> )   /\  ___/|  | \/"    <<'n'; 
std::cout << " \___  (____  /__|_|  /\___  >  \____/ \_/  \___  >__|   "   <<'n';
std::cout << "/_____/     \/      \/     \/                   \/       "    <<'n';

在 C++11 中,原始字符串文本使生活更轻松。只需像这样包装您的字符串:R"(yourstring)"

std::cout << R"(   _________    _____   ____     _______  __ ___________ )"<<'n';
std::cout << R"( / _____    /     _/ __    /  _   / // __ _  __  )"<<'n';
std::cout << R"( / /_/  > __ |  Y Y    ___/  (  <_> )   /  ___/|  | /)"<<'n'; 
std::cout << R"( ___  (____  /__|_|  /___  >  ____/ _/  ___  >__|   )"<<'n';
std::cout << R"(/_____/     /      /     /                   /       )"<<'n';

呵呵,只需双或使用R字符串。

std::cout << "   _________    _____   ____     _______  __ ___________ " << 'n';
std::cout << " / ___\__  \  /     \_/ __ \   /  _   \/ // __ \_  __ \ " << 'n';
std::cout << " / /_/  > __ \|  Y Y  \  ___/  (  <_> )   /\  ___/|  | \/" << 'n';
std::cout << " \___  (____  /__|_|  /\___  >  \____/ \_/  \___  >__|   " << 'n';
std::cout << "/_____/     \/      \/     \/                   \/       " << 'n';

_________    _____   ____     _______  __ ___________
/ _____    /     _/ __    /  _   / // __ _  __ 
/ /_/  > __ |  Y Y    ___/  (  <_> )   /  ___/|  | /
___  (____  /__|_|  /___  >  ____/ _/  ___  >__|
/_____/     /      /     /                   /