C语言代码编译报错:缺失终止'"'字符(CS50x作业求助)
解决编译错误:missing terminating '"' character
你的错误出在原始字符串字面量的语法使用错误:C11的原始字符串格式是R"分隔符(内容)分隔符",你在代码结尾多写了一个多余的双引号。
看你的代码最后一行:
)EOF");
这里的)EOF"已经是原始字符串的结束标记,后面不需要再加双引号。多余的引号让编译器无法匹配正确的引号对,从而抛出missing terminating '"' character错误。
修正后的代码
#include <stdio.h> #include <cs50.h> int main(void) { printf(R"EOF( _____ _ _ _ _ _ _ _____ _ / ____| | | (_) | | | | | | | / ____| (_) | (___ _ _| |__ _ __ ___ _| |_| |_ ___ __| | | |__ _ _ | | _ _ _ __ ___ __ \___ \| | | | '_ \| '_ ` _ \| | __| __/ _ \/ _` | | '_ \| | | | | | | | | | '__| \ \/ / ____) | |_| | |_) | | | | | | | |_| || __/ (_| | | |_) | |_| | | |___| |_| | | | |> < |_____/ \__,_|_.__/|_| |_| |_|_|\__|\__\___|\__,_| |_.__/ \__, | \_____\__, |_| |_/_/\_\ __/ | __/ | |___/ |___/ )EOF); }
(仅将最后一行的)EOF");改为)EOF);)
修正后,编译器就能正确识别原始字符串的边界,你的ASCII图案会被原样输出。
内容的提问来源于stack exchange,提问作者Cyrix
相关产品推荐
相关产品推荐

