本帖最后由 jackz007 于 2020-2-22 19:00 编辑
问题出在下面的字符数组定义和初始化语句const char *letters[] = {
"\
\########@\
\## @\
\## @\
\###### @\
\## @\
\## @\
\## @\
",
"\
\####@\
\ ## @\
\ ## @\
\ ## @\
\ ## @\
\ ## @\
\####@\
",
"\
\ ###### @\
\## ##@\
\## @\
\ ###### @\
\ ##@\
\## ##@\
\ ###### @\
",
"\
\## ##@\
\## ##@\
\## ##@\
\#########@\
\## ##@\
\## ##@\
\## ##@\
",
"\
\ ###### @\
\## ##@\
\## @\
\## @\
\## @\
\## ##@\
\ ###### @\
"
};
每行开头的转义字符惹的祸,删掉就好了。const char *letters[] = {
"\
########@\
## @\
## @\
###### @\
## @\
## @\
## @\
",
"\
####@\
## @\
## @\
## @\
## @\
## @\
####@\
",
"\
###### @\
## ##@\
## @\
###### @\
##@\
## ##@\
###### @\
",
"\
## ##@\
## ##@\
## ##@\
#########@\
## ##@\
## ##@\
## ##@\
",
"\
###### @\
## ##@\
## @\
## @\
## @\
## ##@\
###### @\
"
};
字符 '\' 在 C 语言中是转义字符,与后续字符有固定搭配,比如,'\\' 代表 '\' 字符本身,'\t' 代表 TAB 字符 ,'\n' 代表换行字符,'\r' 代表回车字符,'\012' 代表换行字符,'\x0a' 代表换行字符...,等等。而 '\#' 并不属于预设的有效搭配,所以,编译器就会报错。 |