如何在printf中检测到转义序列?

时间:2016-05-02 08:53:24

标签: c escaping

我正在尝试基本的c程序并编写了这样的程序,

#include <stdio.h>
int main()
{
   printf("hello 0x0a");//0x0a is hex value for \n
   return 0;
}

打印“hello 0x0a”。

有没有办法在printf中将转义序列作为十进制或十六进制值?

2 个答案:

答案 0 :(得分:3)

有一种方法 - 但是这实际上并不是printf的功能,而是语言的一部分。

C字符串文字可以包含escape sequences,它将由编译器评估(而不是在运行时由printf评估)。

以十六进制编写的换行符的正确转义序列为\x0a(或\x0A由您自行决定):

printf("hello \x0a");

答案 1 :(得分:1)

是的,使用ASCII中的数值 0x0a 打印换行符。

 #include <stdio.h>

  int main() 
  {
     printf("Hello,%cworld!", 0x0a);
  }

退格键值 0x08 ,水平标签 0x09 。参考链接here