如何在c中轻松打印ascii艺术(替代R" EOF()EOF"))

时间:2018-03-03 13:24:28

标签: c ascii-art

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

 printf (R "EOF(


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

)EOF");

对于C来说有没有像这样容易使用的替代方案?

1 个答案:

答案 0 :(得分:3)

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

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

等等。请记住,puts附加了最终换行符(您不想使用printf,因为某些字符(尤其是%)具有特殊角色,因为它可能更慢)。如果您不想要最终换行符,请同时考虑fputs

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

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

这样的初始化
const char data[] = { 0x20, 

等...