C库函数 int sscanf(const char *str, const char *format, ...) 读取输入一个字符串格式化。
声明
以下是sscanf() 函数的声明。
intsscanf(constchar*str,constchar*format,...)
参数
str -- 这是C字符串函数流程作为其源中检索数据。
format --这是C字符串,其中包含一个或多个以下项目:空白字符,非空白字符和格式说明符
格式规范遵循这个原型: [=%[*][width][modifiers]type=]
参数
描述
*
This is an optional starting asterisk indicates that the data is to be read from the stream but ignored, i.e. it is not stored in the corresponding argument.
width
This specifies the maximum number of characters to be read in the current reading operation
modifiers
Specifies a size different from int (in the case of d, i and n), unsigned int (in the case of o, u and x) or float (in the case of e, f and g) for the data yiibaied by the corresponding additional argument: h : short int (for d, i and n), or unsigned short int (for o, u and x) l : long int (for d, i and n), or unsigned long int (for o, u and x), or double (for e, f and g) L : long double (for e, f and g)
type
A character specifying the type of data to be read and how it is expected to be read. See next table.
fscanf类型说明:
type
合格输入
参数类型
c
Single character: Reads the next character. If a width different from 1 is specified, the function reads width characters and stores them in the successive locations of the array passed as argument. No null character is appended at the end.
char *
d
Decimal integer: Number optionally preceeded with a + or - sign
int *
e,E,f,g,G
Floating yiibai: Decimal number containing a decimal yiibai, optionally preceeded by a + or - sign and optionally folowed by the e or E character and a decimal number. Two examples of valid entries are -732.103 and 7.12e4
float *
o
OctalInteger:
int *
s
String of characters. This will read subsequent characters until a whitespace is found (whitespace characters are considered to be blank, newline and tab).
char *
u
Unsigned decimal integer.
unsigned int *
x,X
Hexadecimal Integer
int *
other arguments -- 预计此功能作为额外的参数的指针指向对象的类型由它们相应的%标记指定的格式字符串内,以相同的顺序,每一个序列。
对于每一个检索数据的格式字符串格式说明,一个额外的参数应符合规定。如果要存储一个你应该先于它的标识符引用操作的常规变量上一个sscanf的操作结果,即一个符号符号(&),像:int n; sscanf (str,"%d",&n);
返回值
如果成功,函数返回充满变量的数量。在故障之前可以成功地读取任何数据输入的情况下,返回EOF。
例子
下面的例子演示了如何使用 sscanf() 函数。
#include#includeintmain(){intday,year;charweekday[20],month[20],dtm[100];strcpy(dtm,"Saturday March 25 1989");sscanf(dtm,"%s %s %d %d",weekday,month,&day,&year);printf("%s %d, %d = %s
",month,day,year,weekday);return(0);}
让我们编译和运行上面的程序,这将产生以下结果:
March 25, 1989 = Saturday
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。