Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C字符串包含模_C_String_Modulo - Fatal编程技术网

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吗?字符串常量本身是有效的,当然与
“%”
相同,但我非常确定,