C语言转义字符和格式控制符参考

转义字符参考:

 

/a: 蜂鸣,响铃

/b: 回退:向后退一格

/f: 换页

/n: 换行,光标到下行行首

/r: 回车,光标到本行行首

/t: 水平制表

/v: 垂直制表

//: 反斜杠

/': 单引号

/": 双引号

/?: 问号

/ddd: 三位八进制

/xhh: 二位十六进制

/0: 空字符 (NULL), 什么都不做

 

注:

1 /v 垂直制表和 /f 换页符对屏幕没有任何影响,但会影响打印机执行响应操作。

2 /n 其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。

3 /t 光标向前移动四格或八格,可以在编译器里设置

4 /' 在字符里(即单引号里)使用。在字符串里 ( 即双引号里 ) 不需要,只要用 ' 即可。

5 /? 其实不必要。只要用 ? 就可以了(在 windows VC6 tc2 中验证)。  

 

格式控制符参考:

 

 

格式输出字符: printf

 

使用:向终端输出若干个类型任意的数据。

 

形式: printf (格式控制符,输出列表)

 

说明:

 

格式控制符:%  格式说明引导符。

 

      -  指定左对齐输出。

 

      0  指定空位填零。

 

       m.n  指定输出域宽度及精度。

 

       l.h  输出长度的修正。

 

     格式字符   指定输出的数据类型。

 

说明:

 

格式字符:指定输出项的数据类型和输出格式。

 

      d   有符号十进制整数。

 

      o   无符号八进制数。

 

      x   无符号十六进制数。 ( 小写的 x 格式中用小写字母 a,b,c,d,e,f 来表示 10 15 之间的数,大写的 X 则用大写的 ABCDEF 来表示 10 15 之间的数 )

 

      u   不带符号的十进制整数。

 

 

基本整型:两个字节,十六个 bit (位)

 

11 11 11 11 11 11 11 11   等于 65535.

 

11 11 11 11 11 11 11 10     等于  -2.

 

负数的第一位(符号位)为 1 。负数的补码怎么得到:原码取反加一。2的二进制数为: 00 00 00 00 00 00 00 10 ,取反就等于 11 11 11 11 11 11 11 01, 然后加 1 ,二进制数逢二进一,所以就得出 -2 的二进制代码。

 

有符号的整型数可以用 %d 输出。

 

无符号的整型数可以用 %u 输出。

 

电脑里存的数字都是二进制数,最高位是符号位还是数据位,可以由输出格式符来控制。

 

二进制数转换八进制数:三个 1 对应一个 7

 

二进制数錾十六进制数:四位二进制对应一位十六进制,四个 1 对应一个 f

 

说明: 

 

格式字符:   输出一个字符。

 

      s    输出一个字符串。

 

      e    以指数形式输出实型数。

 

      f     以小数形式输出实型数。

 

      g    自动决定输出格式为 e f 中较短的一种,不打印无效的零。

 

      %    输出 %

 

注意:对于单精度数,使用 %f 格式符输出时,仅前 7 位是有效数字,小数 6 位。

 

   对于双精度数,使用 %lf 格式符输出时,前 16 位是有效数字,小数 6 位。

 

长度修正符

 

   l :对整型指定长整型 long

 

      例: %ld , %lx , %lo , %lu

 

    对实型指定双精度 double

 

           例: %lf

 

    h :只用于整型的格式字符修正为 short

 

           例: %hd , %hx , %ho , %hu

 

 

64 位整数的输入输出,在 POJ 上的 C++ 环境下 ( VC++) 64 位整数是:

__int64

输入输出格式为” %I64d .

 

G++ 环境下, 64 位整数是

long long

输入输出格式为” %lld .

 

域宽及精度的描述

 

   M: 域宽,即对应的输出项在输出设备上所占字符数

 

      若:实际数据宽度 >M ,按实际数据宽度输出。

 

        实际数据宽度 <M ,左边补空。

 

   N: 精度,说明输出的实型数的小数位数。

 

几点说明:

 

    编译程序只是检查 printf 函数的调用形式,不分析格式控制字符串,如果格式字符与输出项的类型不匹配,不进行类型转换。(输出的数为随机)

 

    格式字符要用小写字母。

 

    格式控制字符串中可以包含转义字符。

 

    格式控制字符串中的普通字符则原样输出。

 

    输出项的参数除了常数、变量外还可以是表达式、函数调用。

 

        %g,%f %e 这三个格式用于打印浮点值。

                  %g 格式用于打印那些不需要按列对齐的浮点数特别有用。其作用有二:

                   一,去掉该数尾多余的零(没有达到六位的数)

                  二,保留六位有效数字(多余六位的)

                  %e 格式用于打印浮点数时,一律显示地使用指数形式:例如:输出圆周率时是: 3.141593e+00

                 两者的区别:

                 %g 格式打印出的数是总共 6 位有效数字

                 %e 格式打印出小数点后的 6 位有效数字

                 %f 禁止使用指数形式来表示浮点数。因此圆周率输出为: 3.141593

                (但注意它的精度要求:也是小数点后 6 位有效数字)

                8 %% 格式用于打印一个 % 字符。

               9 %E %G 只是在输出时用大写字母( E )代替了小写字母 (e)

 

                  输出正负号的技巧,例如:

                printf("%+d %+d %+d/n",-5,0,5);

                只要在中间加个“ + ”号就行。作用是输出符号位(即,数的正负号)

                如果不希望正数的前面出现‘ + ’号,可用下面的方法

                只要在中间加个“ ”号(即:空格)就行。例如:

                作用:如果一个数是非负数,就在它的前面插入一个空格。

                int i;

                for(i=-3;i<=3;i++)

                        printf("% d/n",i); // 注意 % d 之间有一个空格

 

             

 

 

                sscanf() 的使用技巧:

                分解字符串,很多功能都需要正则表达式的知识,所以就介绍一下最简单的几种用 sscanf 来分解字符串 的用法。

                1.

                char str[100],str1[100],str2[100];

                gets(str);

                sscanf(str,”%s%s”,str1,str2);

                将读入的一整行字符串按空格,制表符或回车符分割成两个字符串。

                2

                取指定长度的字符串。如在下例中,取最大长度为 4 字节的字符串。

           sscanf("123456 ", "%4s", str);

 

 

本文来自 CSDN 博客,转载请标明出处: http://blog.csdn.net/qiqi5521/archive/2008/04/19/2306364.aspx

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值