如何在c中轻松打印ascii art(替代R“EOF()EOF”))

问题描述 投票:0回答:1

我喜欢在我的项目中包含ASCII艺术,直到现在我曾经像这样打印它:

 printf (R "EOF(


    *               MMM8&&&            *
                  MMMM88&&&&&    .
                 MMMM88&&&&&&&
     *           MMM88&&&&&&&&
                 MMM88&&&&&&&&
                  MMM88&&&&&&
                    MMM8&&&      *
          |\___/|
         =) ^Y^ (=            .              '
          \  ^  /
           )=*=(       *
          /     \
          |     |
         /| | | |\
         \| | |_|/\
  _/\_//_// ___/\_/\_/\_/\_/\_/\_/\_
  |  |  |  | \_) |  |  |  |  |  |  | 
  |  |  |  |  |  |  |  |  |  |  |  |  
  |  |  |  |  |  |  |  |  |  |  |  |  
  |  |  |  |  |  |  |  |  |  |  |  |  

)EOF");

有没有像C一样容易使用的替代方案?

c ascii-art
1个回答
3
投票

只需使用文字字符串。当然,你需要编码一些字符(特别是引号,双引号,反斜杠,换行符等)。

puts(
"    *               MMM8&&&            *\n"
"                  MMMM88&&&&&    .\n"
"                 MMMM88&&&&&&&\n"

等等。请记住,puts正在附加一个最终换行符(你不想使用printf,因为某些角色,特别是%,有一个特殊的角色,因为它可能更慢)。如果您不想要最终换行,请考虑fputs

在C和C ++中,两个(或更多)字符串文字汇集在一个中。

顺便说一句,你也可以生成这样的C代码,或者可能有一些东西可以将任何文件(例如你的ASCII艺术)转换为像

const char data[] = { 0x20, 

等等...

© www.soinside.com 2019 - 2024. All rights reserved.