C字符串包含模
我试着用反斜杠来避开它C字符串包含模,c,string,modulo,C,String,Modulo,我试着用反斜杠来避开它 #include <stdio.h> int main(void) { printf("\%"); return 1; } #包括 内部主(空){ printf(\%); 返回1; } 但它不起作用。正确的语法是什么? 如果在C89模式下编译,将打印%(在K&R C中,它是行为定义的)。 在C99/11中,这是无效的 C11:6.4.4.4字符常数: 双引号“和问号?可分别通过自身或转义序列\”和\?表示,但单引号'和反斜杠\应分别
#include <stdio.h>
int main(void) {
printf("\%");
return 1;
}
#包括
内部主(空){
printf(\%);
返回1;
}
但它不起作用。正确的语法是什么?
如果在C89模式下编译,将打印%
(在K&R C中,它是行为定义的)。在C99/11中,这是无效的 C11:6.4.4.4字符常数: 双引号
“
和问号?
可分别通过自身或转义序列\”
和\?
表示,但单引号'
和反斜杠\
应分别表示,通过转义序列\'
和\\
确认没有类似于\%
的转义序列首选的方法是
printf("%%");
几乎是相似的
如果在C89模式下编译,将打印%
(在K&R C中,它是行为定义的)。在C99/11中,这是无效的 C11:6.4.4.4字符常数: 双引号
“
和问号?
可分别通过自身或转义序列\”
和\?
表示,但单引号'
和反斜杠\
应分别表示,通过转义序列\'
和\\
确认没有类似于\%
的转义序列首选的方法是
printf("%%");
几乎是相似的
如果在C89模式下编译,将打印%
(在K&R C中,它是行为定义的)。在C99/11中,这是无效的 C11:6.4.4.4字符常数: 双引号
“
和问号?
可分别通过自身或转义序列\”
和\?
表示,但单引号'
和反斜杠\
应分别表示,通过转义序列\'
和\\
确认没有类似于\%
的转义序列首选的方法是
printf("%%");
几乎是相似的
如果在C89模式下编译,将打印%
(在K&R C中,它是行为定义的)。在C99/11中,这是无效的 C11:6.4.4.4字符常数: 双引号
“
和问号?
可分别通过自身或转义序列\”
和\?
表示,但单引号'
和反斜杠\
应分别表示,通过转义序列\'
和\\
确认没有类似于\%
的转义序列首选的方法是
printf("%%");
几乎类似。
%%
,你可以通过阅读printf()
的文档,或者至少是一本初学者C教程/书来判断。%%
,你可以通过阅读printf()
的文档,或者至少是一本初学者C教程/书来判断。%%
,您可能通过阅读printf()
的文档或至少一本初学者C教程/书就知道了。%%
,您可能通过阅读printf()
的文档或至少一本初学者C教程/书就知道了。谢谢。我想知道为什么它不遵循与常规转义相同的模式。@Jimmay,因为它与转义无关。它与printf
如何处理格式说明符有关。转义对所有字符串都有效,并在编译时完成。格式说明符(百分号)仅由某些函数使用,并在运行时使用。如果要将写入标准输出
,则不需要使用双百分号。可能是一个更好的例子:它只将给定的字符串打印到stdout,而不进行任何处理。谢谢。我想知道为什么它不遵循与常规转义相同的模式。@Jimmay,因为它与转义无关。它与printf
如何处理格式说明符有关。转义对所有字符串都有效,并在编译时完成。格式说明符(百分号)仅由某些函数使用,并在运行时使用。如果要将写入标准输出
,则不需要使用双百分号。可能是一个更好的例子:它只将给定的字符串打印到stdout,而不进行任何处理。谢谢。我想知道为什么它不遵循与常规转义相同的模式。@Jimmay,因为它与转义无关。它与printf
如何处理格式说明符有关。转义对所有字符串都有效,并在编译时完成。格式说明符(百分号)仅由某些函数使用,并在运行时使用。如果要将写入标准输出
,则不需要使用双百分号。可能是一个更好的例子:它只将给定的字符串打印到stdout,而不进行任何处理。谢谢。我想知道为什么它不遵循与常规转义相同的模式。@Jimmay,因为它与转义无关。它与printf
如何处理格式说明符有关。转义对所有字符串都有效,并在编译时完成。格式说明符(百分号)仅由某些函数使用,并在运行时使用。如果要将写入标准输出
,则不需要使用双百分号。可能是一个更好的例子:它只将给定字符串打印到stdout
,而不对其进行任何处理。我更喜欢\%的外观,所以现在我编译为K&R。谢谢。你确定printf(\%')
是有效的K&R C吗?字符串常量本身是有效的,当然与“%”
相同,但我非常确定,