fprintf和fputs在将字符串写入文件时忽略字符串中的'\'

时间:2012-03-15 10:18:33

标签: c string file-io

如果我的字符串包含:

a="abd\\aa\[1\]\\"

如果我尝试使用fputsfprintf将其写入文件,则会将以下内容写入文件:

"abd\aa[1]\"

我想将"abd\\aa\[1\]\\"写入文件。我怎么能做到这一点?

5 个答案:

答案 0 :(得分:2)

你必须逃离\,如下:

printf("abd\\a[1]\\");

否则printf将打印\a字符BEL

答案 1 :(得分:1)

使用double \,因为\是转义字符:

a = "abd\\aa[1]\\"

答案 2 :(得分:1)

\字符是一个特殊字符。试试这样:

a = "abd\\aa[1]\\";

修改

如果您希望将"abd\\\\aa\\[1\\]\\\\"写入文件,则必须将每个反斜杠加倍:

a = "abd\\\\\\\\aa\\\\[1\\\\]\\\\\\\\";

答案 3 :(得分:0)

  

我想将"abd\\\\aa\\[1\\]\\\\"写入文件。

只需加倍反斜杠的数量。

fprintf(fp, "abd\\\\\\\\aa\\\\[1\\\\]\\\\\\\\" );

答案 4 :(得分:0)

当您在字符串中放入'\'时,将忽略下一个字符。如果您在'\'之前放置'\',则会忽略并打印秒函数。