sscanf() - 从一个字符串中读进与指定格式相符的数据。
函数原型及参数:
int sscanf(const char *buffer,const char *format,[argument ]...);
buffer 存储的数据 format 格式控制字符串 argument 选择性设定字符串 sscanf会从buffer里读进数据,依照argument的设定将数据写回。
返回值:
成功则返回参数数目,失败则返回0。
使用:
如果当前允许输入内容为数字,需要判断输入内容,可如下实现:
char buf[40];
int int_value;
printf("\nPlease input a number:");
scanf("%s",buf);
while(sscanf(buf,"%1d",&int_value) != 1) //假设当前仅允许一位输入
{
printf("\nInput Error,Please input a number:");
scanf("%s",buf);
}
其他:
format 支持正则表达式。
举例:
%[a-z] 表示匹配a到z中任意字符
%[aB'] 匹配a、B、'中一员 %[^a] 匹配非a的任意字符,并且停止读入