今天写题用到了sscanf,怕忘赶紧记录一下
去百度了一下这玩意的函数原型好像是长这样的,微软上扣下来的
int sscanf( const char *buffer, const char *format, [ argument ] ... );
它的用法和scanf差不多,scanf用于stdin(标准输入),sscanf用于指定区域输入
这是参数的说明:
buffer:存储的数据
format:窗体控件字符串。
argument:可选自变量
locale:要使用的区域设置
测试代码:
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main(void)
5 {
6 int a;
7 double b;
8 char buf[512] = "";
9
10 //输出字符串
11 sscanf("123456 ", "%s", buf);
12 printf("%s\n", buf);
13
14 //输出浮点
15 sscanf(buf, "%lf", &b);
16 printf("%lf\n", b);
17
18 //输出整型
19 sscanf(buf, "%d", &a);
20 printf("%d\n", a);
21
22 //特殊输出于scanf类比
23 sscanf("123456 ", "%4s", buf);
24 printf("%s\n", buf);
25
26 sscanf("123456 abcdedf", "%[^ ]", buf);
27 printf("%s\n", buf);
28
29 sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);
30 printf("%s\n", buf);
31
32 sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);
33 printf("%s\n", buf);
34
35 sscanf("hello, world", "%*s%s", buf); //%*s表示第一个匹配到的%s被过滤掉
36 printf("%s\n", buf);
37
38
39 return 0;
40 }
学习不易,诸君共勉!