printf格式参数包含未定义的转义字符

时间:2013-09-10 12:18:18

标签: c string escaping printf

#include <stdio.h>

int main()
{
   printf("Hello\c!\n");
   return 0;
}

输出:Helloc!

那么,当\[some_undifined_symbol]出现在printf的格式字符串中时,它会忽略\

2 个答案:

答案 0 :(得分:4)

\c不是已定义的转义序列,但最好避免使用它,因为它是保留的:

  

C99§6.11.4字符转义序列

     

作为转义序列的小写字母保留用于将来的标准化。其他   字符可以在扩展名中使用。

答案 1 :(得分:1)

您为c定义了以下转义序列:

  • \'单引号
  • \"双引号
  • \\反斜杠
  • \0 null character
  • \a发出声音
  • \b退格
  • \f表单Feed - 新页面
  • \n换行 - 新行
  • \r回车
  • \t水平标签
  • \v垂直标签
  • \nnn任意八进制值
  • \xnn任意十六进制值