我正在开发一款简单的终端游戏。但是,当我尝试输出一些ASCII转换文本。我的输出结果不正确。
代码;
cout << " _________ _____ ____ _______ __ ___________ "<<'\n';
cout << " / ___\__ \ / \_/ __ \ / _ \ \/ // __ \_ __ \ "<<'\n';
cout << " / /_/ > __ \| Y Y \ ___/ ( <_> ) /\ ___/| | \/"<<'\n';
cout << " \___ (____ /__|_| /\___ > \____/ \_/ \___ >__| "<<'\n';
cout << "/_____/ \/ \/ \/ \/ "<<'\n';
输出:
_________ _____ ____ _______ __ ___________
/ _____ / _/ __ / _ / // __ _ __
/ /_/ > __ | Y Y ___/ ( <_> ) / ___/| | /
___ (____ /__|_| /___ > ____/ _/ ___ >__|
/_____/ / / / /
答案 0 :(得分:2)
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';