在C语言中如何打印双引号(")

5
我正在编写一个C代码,从文件中读取并生成一个中间.c文件。 为此,我使用fprintf()来打印到这个中间文件。 如何打印"

19
打印输出双引号:printf("\""); - Cornstalks
在将其作为生成的 C 代码发出之前,您可能应该构建一些 AST - Basile Starynkevitch
C并不是你想用来生成代码的语言。虽然可以做到,如果需要进行复杂计算以生成简单代码,则完全足够,但通常这是预处理器的工作。像m4这样的东西已经被广泛有效地使用了。许多人使用Python来实现此目的。但哪种方法最好实际上取决于手头的问题。 - cmaster - reinstate monica
fputc('"', fp); 也可以,或者使用 fprintf%c,但在字符串字面值中转义通常是最简单的。 - hyde
你最好不要提及你的动机,因为所有的宗教狂热者都会攻击你,并忽略你的问题。 - Hot Licks
这是一个相当不错的总结:http://en.wikipedia.org/wiki/Escape_sequences_in_C - Hot Licks
2个回答

10

你可以使用转义符号 \",例如:

puts( "\"This is a sentence in quotes\"" );
或者
printf( "Here is a quote %c", '\"' );
或者
printf( "Here is a quote %c", '"' );

你可以使用溢出符号 ",例如:puts(""这是在双引号中的句子""); 或是 printf("这是一个双引号 %c", '"'); 或是 printf("这是一个双引号 %c", '"'); - 蔡宗容
在我看来,第二个是最好的。 - Kyrol

5
如果您只想打印一个双引号字符:"
putchar('"');

在字符常量中,不必转义",因为字符常量由'界定,而不是"。(如果你愿意,仍然可以对其进行转义:'\"')。

如果它是字符串字面值中的一部分,那么需要对其进行转义,以免被视为字面值的关闭符号"

puts("These are \"quotation marks\"\n");

或者

printf("%s\n", "These are \"quotation marks\"");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接