是否可以写下这样的内容:
printf(@"
-
-
-
-
");
我可以在C#中完成,但不能在C中。它在CodeBlocks中给我一个错误。我被允许这样做吗?
错误讯息:错误:迷路' @'在计划中。
答案 0 :(得分:2)
没有。该语法在C中不存在。
如果你想要一个多行字符串,把它写成多个双引号字符串,它们之间没有其他标记。他们将合并。
printf(
"some string"
"more of the string"
"even more of the string"
);
(当然,如果您想要的话,您需要在每行的末尾添加\n
。)
答案 1 :(得分:2)
不,这不是C理解的语法,C没有原始文字。 你可以使用\作为最后一个字符继续下一行:
const char *str = "hello\n\
world";
此外,将连接连续的字符串文字。所以你可以这样做。
const char *str = "Hello\n"
"world\n";
答案 2 :(得分:2)
如果要在字符串文字中嵌入多行,可以在字符串中的适当位置插入\ n,或者也可以转义返回字符:
printf("Here's\
a multiline\
string litteral");
答案 3 :(得分:1)
在行尾用行\
继续行。
printf("\
\
-\
-\
-\
-\
");
答案 4 :(得分:1)
C中的字符串文字可能不包含换行符。您有两种解决方法:
使用隐式字符串连接(由编译器完成)。
printf("The quick brown"
" fox jumps over"
" the sleazy dog.");
通过在其前面放置反斜杠来转义换行符。
printf("The quick brown\
fox jumps over\
the sleazy dog.");
就个人而言,我更喜欢第一种形式,因为第二种形式看起来很丑陋(我的观点),并迫使你破坏你的代码缩进。
在任何一种情况下,字符串根本不包含换行符。因此,如果你真的想让他们在那里,你必须通过\n
添加它们。