如何在C语言的字符数组中写入多行内容?
C语言多行字符数组的双引号问题解决方法
核心问题原因
你遇到的编译错误是因为C语言中字符串字面量用双引号"包裹,内部的双引号会被编译器误判为字符串的结束标记,导致语法错误。替换成单引号也没用,因为单引号在C里仅用于表示单个字符,无法替代字符串的双引号。
两种可行解决方案
1. 转义内部双引号 + 换行转义符
在每个内部双引号前加\转义,同时在每行末尾加\表示字符串延续到下一行:
char palavra2 [] = "{Conversor de Temperatura: °C -> °F}\ prg Exemplo_02;\ {Declaração de variáveis}\ var\ int c;\ float f;\ {Programa principal}\ begin\ write(\"Informe a temperatura em °C: \");\ read(c);\ f <- 1.8 * C - 32;\ write(\"O correspondente em Fahrenheit é: \", f);\ end.";
2. 使用C99原生多行字符串字面量(推荐)
C99及以上标准支持原始字符串字面量,格式为R"(内容)",内部的双引号无需转义,直接编写即可,换行也会被保留:
char palavra2 [] = R"({Conversor de Temperatura: °C -> °F} prg Exemplo_02; {Declaração de variáveis} var int c; float f; {Programa principal} begin write("Informe a temperatura em °C: "); read(c); f <- 1.8 * C - 32; write("O correspondente em Fahrenheit é: ", f); end.)";
这种方式代码更简洁,避免大量转义符,主流IDE(如VSCode、Clion、GCC/Clang编译器)都支持该特性。
内容的提问来源于stack exchange,提问作者MackProgram
相关产品推荐
相关产品推荐

