sscanf()函数
C语言stdio.h标准库中的sscanf()函数,可以用于从指定的字符串中格式化地读取数据,并存储到参数指定的变量之中。
sscanf()函数语法:
int sscanf( const char *str, const char *fmt, ...)
sscanf()参数
参数 描述
str 字符串,包含的所要被格式化读取的数据之间一般以空格隔开
fmt 包含格式说明符的格式化字符串
... 个数可变的参数,用于存储读取到的数据,一般格式为:&varName
sscanf类型说明符和宽度修饰符
C语言中sscanf()函数的各种类型的说明符和宽度修饰符,及该修饰符的作用及使用规范,可参考上一章节scanf()函数中内容,里头已经有较为详细的介绍。
sscanf()返回值
如果读取成功或未全部成功,则返回成功读取和存储的个数,否则将返回一个EOF(这个值一般是一个负数)。
sscanf()实例代码
如下实例代码,使用sscanf()函数从字符串中读取数据,其中格式化读取类型为字符串数据时使用了宽度修饰符修饰,避免缓冲区溢出:
#include "stdio.h"
int main() {
char str[] = "1 2.1 Hello, World";
char buf[6];
int int_num;
float float_num;
int num = sscanf(str, "%d %f %5s", &int_num, &float_num, &buf);
if(num > 0){
printf("sscanf()函数格式化读取的数据个数为:%d\n",num);
printf("sscanf()函数读取到的字符串为:%s\n",buf);
}else{
printf("sscanf()函数格式化读取数据未成功\n");
}
return 0;
}
代码编译运行,得到输出并输入:
sscanf()函数格式化读取的数据个数为:3
sscanf()函数读取到的字符串为:Hello
免责声明:内容仅供参考,不保证正确性。 |