我需要包含' +' sprintf格式参数中的字符。 但我知道它是一个标志说明符。所以我不能像贝娄那样写它
sprintf( like_part, "'%%' + '%s' + '%%'" , search_string.c_str() );
我试图用一个'%'性格,但它也没有工作。 有什么想法吗?
sprintf( like_part, "'%%' %+ '%s' %+ '%%'" , search_string.c_str() );
我已经用另一种方式搜索了这个。 但即使参考文献也没有提及任何关于如何逃避的事情' +'字符。
更新: 后来我意识到这个波纹管代码也不行。
#include <iostream>
#include <string>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc,char** argv)
{
char buffer[1024];
strcpy(buffer,"");
strcat(buffer,"%");
strcat(buffer,"");
strcat(buffer,"%");
printf(buffer);
printf("\n");
}
输出应为&#39; %%&#39;但只有&#39;%&#39 ;; 那有什么不对? 我遇到了一个错误吗?
答案 0 :(得分:4)
第一个版本应该可以正常工作。它只在格式化说明符的一部分时具有特殊的权力,例如
"My number is %+.0e"
答案 1 :(得分:3)
你可以像第一个例子一样编写它。它只是在紧跟%
字符之前的说明符。在所有其他情况下,它是一个标准字符。在printf
来电中,唯一的特殊字符是%
符号(当然,还有\
,但这不是printf
特定的)