众所周知,C语言中进行格式化输入经常用到的两个函数分别是scanf和sscanf,二者的区别是:
前者从标准输入中读取内容,而sscanf则从其第一个参数指向的内存中读取数据,但是这两者在输入格式控制上是一样的,也就是说,其格式控制字符串含义相同。
下面对Format Cstring 包含的内容和意义进行简单介绍:
1.空白字符,这包括空格,换行,Tab。在对输入流进行格式化处理过程中,输入流中包含的空白字符会被自动忽略,但这并不意味着空白字符毫无价值。实际上,空白字符就相当于输入流当中的分界符(终止符)。
2.格式字符,一般表示为:
%[*][最多读取的字符长度]类型
其中*号表示从流中读取但是并不存储该内容;而类型一般使用单个字符i,d,o,e,s等,分别表示读取相应内型的值,并且存储。
i,u: 整数,可以表示正负数,还可以在i/u前面加上0,0x分别表示八和十六进制。
d: 十进制整数,可正负
o: 八进制,可正负
x: 十六进制,可正负
f,e: 浮点数,包括科学计数表示法
c 字符,可以用[width]c表示读取width个字符,注意这里在字符存储的末尾并没有加null字符
s 任意个数非空白字符组成的字符串,末尾会自动加上null