gpt4 book ai didi

c - printf 忽略单个反斜杠 '\'

转载 作者:太空狗 更新时间:2023-10-29 15:11:34 27 4
gpt4 key购买 nike

我有这段代码:

int main(int argc, char * argv[])
{
int i;
printf("%d%s",argc,argv[1]);
return 0;
}

如果我将此代码作为 a.out a\=b= 运行。我正在使用 C-shell

它的输出是“a=b=”,有什么方法可以将它的输出更改为“a\=b=”。

最佳答案

已编辑问题的更新:

用引号将您的命令行参数括起来:

  $ a.out "a\=b="

引号阻止 shell 以任何方式解释命令行参数,所以只有这个字符串被传递给你的程序。我使用 csh/bash ..两者都适用。

或者,您可以用另一个“转义”\ 并跳过双引号:

  $ a.out a\\=b=

原始问题的先前答案:

是的,使用两个\:

char a[]="a\\=b=";

输出:

a\=b=

解释:

\ 是一个转义字符,用于表示一个特殊的字符序列,例如 \t 表示一个制表符。如果你想实际打印\t,你需要用另一个\“转义”这个\。看这个例子和输出:

printf("\t-->Hi\n");    /* print regular tab via \t                        */
printf("\\t-->Hi\n"); /* want to print "\t", not tab ..so we use two \\ */

结果是:

    -->Hi
\t-->Hi

不是 printf() 函数独有的,也不是 C 语言独有的,可能语言使用反斜杠来指示字符串中的“转义序列”。

关于c - printf 忽略单个反斜杠 '\',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11244184/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com