我有这种情况需要逃避一个角色。 我正在尝试形成一个缓冲区
char buffer[1024];
char* x="hello";
char* y="world";
sprintf(buffer,"=%s\n-%s\n ",x,y);
我的目标是获得一个缓冲区,例如
=hello\n-world\n
按照这个确切的顺序。当缓冲区传递给函数时,诸如(=,\ n, - )之间的符号都会执行特定操作。
但是,如果按照上面的代码所示打印当前代码,我会得到
=hello
-world
而不是
=hello\n-world\n
但这不是理想的。我怎样才能达到预期的效果?
答案 0 :(得分:7)
您需要转义反斜杠,如下所示:\\
sprintf(buffer,"=%s\\n-%s\\n ",x,y);
答案 1 :(得分:0)
试试这个
sprintf(buffer,"=%s\\n-%s\\n ",x,y)
答案 2 :(得分:0)
您可以通过在其前面添加反斜杠来覆盖任何转义序列。 在这种情况下:
sprintf(buffer,"=%s\\n-%s\\n ",x,y);
答案 3 :(得分:0)
char buffer[1024];
char x="hello";
char y="world";
sprintf(buffer,"=%s\n-%s\n ",x,y);
Add `\` as indicated ^ ^
并且char x="hello"
您希望将string
存储在char变量中,您的程序将崩溃。
改为任何一个 -
char *x="hello";
或
char x[]="hello";
答案 4 :(得分:0)
\n
被称为换行转义序列,然后在控制台上打印换行符。你需要通过加上反斜杠前缀来逃避这一点。例如
sprintf(buffer, "=%s\\n-%s\\n", x, y);