文档章节

C/C++的转义字符

GeorgeSu
 GeorgeSu
发布于 2014/05/09 11:52
字数 1761
阅读 96
收藏 3
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的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 任意字符 二位十六进制

\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。

说明:

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

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);


本文转载自:http://www.cnblogs.com/emanlee/archive/2010/05/14/1735274.html

GeorgeSu
粉丝 0
博文 39
码字总数 2035
作品 0
普陀
程序员
私信 提问
python入门学习笔记(2)

1.注释 a. python的注释是由#开头的语句,这与C、C++、java的//注释有别 2.python采用缩进方式 当语句以冒号(:)结尾时,缩进的语句被视为代码块,如下 这就有点类似C中的花括号( { } )的...

新城旧少年
2018/08/10
0
0
C、C++中的字符与字符串(点滴记录)

C/C++ 中的字符类型: signed char 有符号字符 unsigned char 无符号字符 char 根据实现,可以是无符号活有符号 wchar_t 宽字符 C95 char16_t UTF-16字符 C++0x, C1x char32_t UTF-32字符 C+...

晨曦之光
2012/05/08
198
0
匹配c风格字符串的正则表达式

pattern=re.compile(r'""|".*?(?!\\)."') pattern=re.compile(r'"(\\.|.)*?"') c++风格的字符串,用"括起来,里面如果要出现"则使用转义字符\,除了这两种,还有什么更好的匹配表达式么?......

刘地
2012/12/04
121
0
分析C++ Command-line参数

预注:命令行(commandline)被操作系统的命令分析器(/往后简称cmdlineparser)分解到命令参数argv[0]…[n],这里,commandline是入料,argv是出品. Microsoft C/C++ 程序引导代码使用以下规...

雅各宾
2013/08/17
2K
1
C++笔记(一)20110223

近日,公司准备用C++来做个类似openmeetings的软件。C++只是在学校时学习了,当当购了三本《Visal C++ 入门经典(第五版)》、《深入浅出MFC》、《Visaual C++ 音频你/视频处理技术及工程实践...

钟小华
2011/02/23
340
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
7
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
7
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
9
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部