C语言中printf数值前面加\是什么,求大神发个完整的\加数字代表什么的表给我,谢谢

如题所述

如果你是指printf("\70");这样的话,那就是ASCII码,

不过加了'\70'是八进制为70的ASCII码,70换成八进制就是56,对应数字8

http://baike.baidu.com/view/15482.htm


如果是指格式符:

%c  字符   

%d  十进制整数  

%e  浮点数,指数e的形式  %s  字符串 

%E  浮点数,指数E的形式  %u  无符号十进制整数 

%f  浮点数,小数点形式  %g  输出%f与%e较短者 

%o  无符号八进制整数  %G  输出%F与%E较短者 

%x  无符号十六进制整数,以0~f表示  %X  无符号十六进制整数,以0~F表示 

%l  长整型,加在d,o,u,x,X之前,如%ld(注意%l是英文字母l,不是数字1) int printf(const char *format,[argument]);

  format 参数输出的格式,定义格式为: 

  %[flags][width][.perc] [F|N|h|l]type 

  规定数据输出方式,具体如下: 

  1.type 含义如下: 

  d 有符号10进制整数 

  i 有符号10进制整数 

  o 有符号8进制整数 

  u 无符号10进制整数 

  x 无符号的16进制数字,并以小写abcdef表示

  X 无符号的16进制数字,并以大写ABCDEF表示

  F/f 浮点数 

  E/e 用科学表示格式的浮点数 

  g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数 

  c 单个字符 

  s 字符串 

  % 显示百分号本身 

  p 显示一个指针,near指针表示为:XXXX 

  far 指针表示为:XXXX:YYYY 

  n 相连参量应是一个指针,其中存放已写字符的个数 

  2.flags 规定输出格式,取值和含义如下: 

  无 右对齐,左边填充0和空格 

  - 左对齐,右边填充空格 

  + 在数字前增加符号 + 或 -

  一个空格 只对负数显示符号 

  # 当type=c,s,d,i,u时没有影响 

  type=o,x,X时,分别在数值前增加'0',"0x","0X"

  type=e,E,f时,总是使用小数点 

  type=g,G时,除了数值为0外总是显示小数点 3.width 用于控制显示数值的宽度,取值和含义如下n(n=1,2,3...) 宽度至少为n位,不够以空格填充 

  0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充 * 格

  式列表中,下一个参数还是width 4.prec 用于控制小数点后面的位数,取值和含义如下: 

  无 按缺省精度显示 

  0 当type=d,i,o,u,x时,没有影响 

  type=e,E,f时,不显示小数点 

  n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数 

  type=其他,表示显示的最大宽度 .* 

  格式列表中,下一个参数还是width 

  5.F|N|h|l 表示指针是否是远指针或整数是否是长整数 

  F 远指针 

  n 近指针 

  h短整数或单精度浮点数 

  l 长整数或双精度浮点数

  1.一般格式

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

  例如:printf("i=%d,ch=%c\n",i,ch);

  说明:

  (1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:

  ①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。

  ②普通字符,即需要原样输出的字符。

  (2)“输出表列”是需要输出的一些数据,可以是表达式

  (3)printf函数的一般形式可以表示为

  printf(参数1,参数2,……,参数n)

  功能是将参数2~参数n按参数1给定的格式输出

  2.格式字符(9种)

  (1)d(或i)格式符。用来输出十进制整数,有以下几种用法:

  ①%d,按整型数据的实际长度输出。

  ②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

  ③%ld(%mld 也可),输出长整型数据。

  例如:long a=123456;

  printf("%ld",a);

  (2)o格式符,以八进制数形式输出整数。格式:%o,%mo,%lo,%mlo都可。

  (3)x(或X)格式符,以十六进制数形式输出整数。格式:%x,%mx,%lx,%mlx都可。

  (4)u格式符,用来输出unsigned型数据,即无符号数,以十进制数形式输出。格式:%u,%mu,%lu都可。

  参见:li4-3.c/*无符号数据的输出*/

  (5)c格式符,用来输出一个字符。格式:%c,%mc都可。

  (6)s格式符,用来输出一个字符串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。

  参见:li4-5.c /*字符串的输出*/

  (7)f格式符,用来输出实数(包括单、双精度),以小数形式输出。格式:%f,%m.nf,%-m.nf都可。

  注意:单精度实数的有效位数一般为7位,双精度为16位。

  参见:li4-6.c/*输出单精度实数时的有效位数*/

  li4-7.c/*输出双精度实数时的有效位数*/

  li4-8.c/*输出实数时指定小数位数*/

  (8)e(或E)格式符,以指数形式输出实数。格式:%e,%m.ne,%-m.ne都可。

  (9)g(或G)格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种)。

  3.说明

  (1)除了X、E、G(用大写字母表示)外,其他格式字符必须用小写字母;

  (2)“格式控制”字符串内可以包含转义字符

  (3)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如:

  printf("%f%%",1.0/3);

  (4)格式字符表参见下表

  表4.1 printf格式字符

  格式字符 说 明 

  d,i 以带符号的十进制形式输出整数(正数不输出符号) 

  o 以八进制无符号形式输出整数(不输出前导符0) 

  x,X 以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出,用X时,则以大写字母输出 

  u 以无符号十进制形式输出整数 

  c 以字符形式输出,只输出一个字符 

  s 输出字符串 

  f 以小数形式输出单、双精度数,隐含输出6位小数 

  e,E 以指数形式输出实数 

  g,G 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0 

  表4.2 printf的附加格式说明字符

  字符

  说明

  字母l

  用于长整型整数,可加在格式符d、o、x、u前面

  m(代表一个正整数)

  数据最小宽度

  n(代表一个正整数)

  对实数,表示输出n位小数;对字符串,表示截取的字符个数

  -

  输出的数字或字符在域内向左靠 


另外送你一份我照书敲的格式符使用的案例!

学习愉快,少年!

追问

谢谢,但是我想问的是:比如我在printf函数中打\2,跳出来的是个笑脸,\后面加数字,可以表示好多符号,想请大神帮帮忙,给我一份这方面的资料,谢谢

追答

很抱歉,我手上并无这类的资料,网上搜索了,并未搜索到。

#include <iostream>
using namespace std;

int main(void)
{
printf("1  \1\n");
printf("2  \2\n");
printf("3  \3\n");
printf("4  \4\n");
printf("5  \5\n");
printf("6  \6\n");
printf("7  \7\n");
printf("8  \8\n");
printf("9  \9\n");
printf("10  \10\n");
printf("12  \12\n");
printf("13  \13\n");
printf("14  \14\n");
printf("15  \15\n");
printf("16  \16\n");
printf("17  \17\n");
printf("18  \18\n");
printf("19  \19\n");
printf("20  \20\n");
printf("21  \21\n");
printf("22  \22\n");
printf("23  \23\n");
printf("24  \24\n");
printf("70  \70");
return 0;
}

按照这份代码来看,有的数字并不对应特殊符号。

我只能告诉你,理论上来说,\ddd就是\加数字,表示的是ASCII码八进制为这个数字的符号。

如'\70',就是八进制为70,即十进制为56的符号,查ASCII码表可得到ASCII码为56的符号是8;

所以输出'\70'输出字符8;

而'\12'就是八进制为12,即十进制为10的符号,查ASCII码表可得到ASCII码为10的符号是换行符,所以你运行这个程序后会发现12后面确实是输出了换行符!


希望对你有帮助,如果你认为必要的话,可以选择把问题留在这里等待更正确的答案。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-25
转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号( '),用于表示字符串常量的双撇号( ")和反斜杠( \)等。转义字符用反斜杠\后面跟一个字符或一个八进制或十六进制数表示。
转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 问号字符 063
\' 单引号字符 039
\" 双引号字符 034
\0 空字符(NULL) 000
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制

字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。
在C程序中使用转义字符\ d d d或者\ x h h可以方便灵活地表示任意字符。\ d d d为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制A S C I I码值。\ x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制A S C I I码值。
第2个回答  2013-05-25
\\ 反斜杠
\a 警告
\b 退格
\f 换页
\n 换行
\r 回车
\t 跳格
\v 垂直跳格
\ddd ddd 是 1、2 或 3 位八进制数字,\xuu uu 是十六进制的数字。
这些转义序列作为由八进制数指定的具有数字值的字节显示。
第3个回答  2013-05-25
如果你是学c的书上应该有