使用 cout、C++ 输出转换为 ASCII 的文本时格式错误的输出
Malformed output when outputting text converted to ASCII with cout, C++
我正在开发一款简单的终端游戏。但是当我尝试将一些内容输出为 ASCII 转换文本时。我得到格式错误的输出。
代码;
cout << " _________ _____ ____ _______ __ ___________ "<<'\n';
cout << " / ___\__ \ / \_/ __ \ / _ \ \/ // __ \_ __ \ "<<'\n';
cout << " / /_/ > __ \| Y Y \ ___/ ( <_> ) /\ ___/| | \/"<<'\n';
cout << " \___ (____ /__|_| /\___ > \____/ \_/ \___ >__| "<<'\n';
cout << "/_____/ \/ \/ \/ \/ "<<'\n';
输出:
_________ _____ ____ _______ __ ___________
/ _____ / _/ __ / _ / // __ _ __
/ /_/ > __ | Y Y ___/ ( <_> ) / ___/| | /
___ (____ /__|_| /___ > ____/ _/ ___ >__|
/_____/ / / / /
嘿,只需加倍 \
或使用 R
字符串。
std::cout << " _________ _____ ____ _______ __ ___________ " << '\n';
std::cout << " / ___\__ \ / \_/ __ \ / _ \ \/ // __ \_ __ \ " << '\n';
std::cout << " / /_/ > __ \| Y Y \ ___/ ( <_> ) /\ ___/| | \/" << '\n';
std::cout << " \___ (____ /__|_| /\___ > \____/ \_/ \___ >__| " << '\n';
std::cout << "/_____/ \/ \/ \/ \/ " << '\n';
_________ _____ ____ _______ __ ___________
/ ___\__ \ / \_/ __ \ / _ \/ // __ \_ __ \
/ /_/ > __ \| Y Y \ ___/ ( <_> ) /\ ___/| | \/
\___ (____ /__|_| /\___ > \____/ \_/ \___ >__|
/_____/ \/ \/ \/ \/
C++ 在字符串中使用 \
作为 escape character,所以它不会直接显示,但你必须使用 \
来显示反斜杠。这样做的缺点是您的字符串可能与之后的程序输出看起来非常不同:
std::cout << " _________ _____ ____ _______ __ ___________ " <<'\n';
std::cout << " / ___\__ \ / \_/ __ \ / _ \ \/ // __ \_ __ \ "<<'\n';
std::cout << " / /_/ > __ \| Y Y \ ___/ ( <_> ) /\ ___/| | \/" <<'\n';
std::cout << " \___ (____ /__|_| /\___ > \____/ \_/ \___ >__| " <<'\n';
std::cout << "/_____/ \/ \/ \/ \/ " <<'\n';
在 C++11 中,raw string literals 让生活更轻松。像这样包裹你的字符串:R"(yourstring)"
std::cout << R"( _________ _____ ____ _______ __ ___________ )"<<'\n';
std::cout << R"( / ___\__ \ / \_/ __ \ / _ \ \/ // __ \_ __ \ )"<<'\n';
std::cout << R"( / /_/ > __ \| Y Y \ ___/ ( <_> ) /\ ___/| | \/)"<<'\n';
std::cout << R"( \___ (____ /__|_| /\___ > \____/ \_/ \___ >__| )"<<'\n';
std::cout << R"(/_____/ \/ \/ \/ \/ )"<<'\n';
我正在开发一款简单的终端游戏。但是当我尝试将一些内容输出为 ASCII 转换文本时。我得到格式错误的输出。
代码;
cout << " _________ _____ ____ _______ __ ___________ "<<'\n';
cout << " / ___\__ \ / \_/ __ \ / _ \ \/ // __ \_ __ \ "<<'\n';
cout << " / /_/ > __ \| Y Y \ ___/ ( <_> ) /\ ___/| | \/"<<'\n';
cout << " \___ (____ /__|_| /\___ > \____/ \_/ \___ >__| "<<'\n';
cout << "/_____/ \/ \/ \/ \/ "<<'\n';
输出:
_________ _____ ____ _______ __ ___________
/ _____ / _/ __ / _ / // __ _ __
/ /_/ > __ | Y Y ___/ ( <_> ) / ___/| | /
___ (____ /__|_| /___ > ____/ _/ ___ >__|
/_____/ / / / /
嘿,只需加倍 \
或使用 R
字符串。
std::cout << " _________ _____ ____ _______ __ ___________ " << '\n';
std::cout << " / ___\__ \ / \_/ __ \ / _ \ \/ // __ \_ __ \ " << '\n';
std::cout << " / /_/ > __ \| Y Y \ ___/ ( <_> ) /\ ___/| | \/" << '\n';
std::cout << " \___ (____ /__|_| /\___ > \____/ \_/ \___ >__| " << '\n';
std::cout << "/_____/ \/ \/ \/ \/ " << '\n';
_________ _____ ____ _______ __ ___________
/ ___\__ \ / \_/ __ \ / _ \/ // __ \_ __ \
/ /_/ > __ \| Y Y \ ___/ ( <_> ) /\ ___/| | \/
\___ (____ /__|_| /\___ > \____/ \_/ \___ >__|
/_____/ \/ \/ \/ \/
C++ 在字符串中使用 \
作为 escape character,所以它不会直接显示,但你必须使用 \
来显示反斜杠。这样做的缺点是您的字符串可能与之后的程序输出看起来非常不同:
std::cout << " _________ _____ ____ _______ __ ___________ " <<'\n';
std::cout << " / ___\__ \ / \_/ __ \ / _ \ \/ // __ \_ __ \ "<<'\n';
std::cout << " / /_/ > __ \| Y Y \ ___/ ( <_> ) /\ ___/| | \/" <<'\n';
std::cout << " \___ (____ /__|_| /\___ > \____/ \_/ \___ >__| " <<'\n';
std::cout << "/_____/ \/ \/ \/ \/ " <<'\n';
在 C++11 中,raw string literals 让生活更轻松。像这样包裹你的字符串:R"(yourstring)"
std::cout << R"( _________ _____ ____ _______ __ ___________ )"<<'\n';
std::cout << R"( / ___\__ \ / \_/ __ \ / _ \ \/ // __ \_ __ \ )"<<'\n';
std::cout << R"( / /_/ > __ \| Y Y \ ___/ ( <_> ) /\ ___/| | \/)"<<'\n';
std::cout << R"( \___ (____ /__|_| /\___ > \____/ \_/ \___ >__| )"<<'\n';
std::cout << R"(/_____/ \/ \/ \/ \/ )"<<'\n';