int scanf(const char *format, ...);
int fscanf(FILE *stream, const char *format, ...);
int sscanf(const char *str, const char *format, ...);
其中的format可以是一个或多个 {%
[width] [{h | l | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号}
注:
1、 * 亦可用于格式中, (即 %*d 和 %*s) 加了星号 (*) 表示跳过此数据不读入. (也就是不把此数据读入参数中)
2、{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。
3、width表示读取宽度。
4、{h | l | I64 | L}:参数的size,通常h表示单字节size,I表示2字节 size,L表示4字节size(double例外),l64表示8字节size。
5、type :这就很多了,就是%s,%d之类。
6、特别的:%*[width] [{h | l | I64 | L}]type 表示满足该条件的被过滤掉,不会向目标参数中写入值
支持集合操作:
%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
%[aB'] 匹配a、B、'中一员,贪婪性
%[^a] 匹配非a的任意字符,贪婪性
例子:
char *str = "u0p18968Fanonymous@ttttt.xxx.comTroot@ppppp.yyyy.com\n aaaa\r\n";
//sscanf(str, "%[^F]F%[^T]T%s%[^ /t/n/r]", header, from, rcptto);
sscanf(str, "%[^F]F%[^T]T%s", header, from, rcptto);
fprintf(stderr, "header(%s), from(%s), to(%s)\n", header, from, rcptto);
输出结果:
header(u0p18968), from(anonymous@ttttt.xxx.com), to(root@ppppp.yyyy.com)
注:
scanf族函数会自动去除掉字符串中的空白字符' ', '\t', '\r', '\n'
分享到:
相关推荐
每种语言都对正则表达式有着不同程度的支持,在C语言中,有输入功能的这三个函数对正则表达式的支持并不强大,但是我们还是有必要了解一下。 首先来看看他们的原型: #include int scanf(const char *format, ...)...
fprintf、printf、sprintf、fscanf、scanf、sscanf_格式化输入输出
带有目录查询的fprintf、printf、sprintf、fscanf、scanf、sscanf_格式化输入输出
主要介绍了详解C语言sscanf()函数、vsscanf()函数、vscanf()函数,是C语言入门学习中的基础知识,需要的朋友可以参考下
以下是对C语言中printf(),sprintf(),scanf(),sscanf()的用法以及区别进行了详细的分析介绍,需要的朋友可以参考下
标准输入输出函数%[]和%n说明符的使用方法 scanf fscanf,均从第一个非空格的可显示字符开始读起!
现在使用fopen函数会跳出这个问题来,让你使用fopen_s(同理scanf、gets等输入也会这样),我们可以仍然使用这些函数,方法如下:1)右击项目,选择
函数族 用途 可用于所有的流 只用于stdin和stdout 内存中的字符串 scanf 格式化输入 fscanf scanf sscanf printf 格式化输出 fprintf printf sprintf
sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。但是有点类似于正则表达式
STM32实现printf和scanf源代码,保证能运行
sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。
python的scanf函数 Python是一种高级编程语言,它提供了许多内置函数来帮助开发人员更轻松地编写代码。其中一个非常有用的函数是scanf函数,它可以帮助我们从标准输入中读取数据。 scanf函数是C语言中的一个非常常用...
是一个阻塞式的函数,2用户输入完毕后,则将值赋值给变量,至此函数调用完毕。敲回车键告知计算机键入完毕。 (二)使用注意 ①. 使用scanf函数输入一个字符变量。Char a; scanf(“%c”,&a); ②. 同时输入多个值。...
中山大学牛人总结的scanf函数的技巧,看了之后对scanf函数理解会更加深刻。
scanf输入容易出现错误,主要有三点。
解释扫描解释背后的魔力。
sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。 其中的format可以是一个或多个 {%[*] [width] [{h | l | I64 | L}]type | ‘ ‘ | ‘\t’ | ‘\
这里是C语言常用标准库函数源码的库,例如包括printf,sprintf,scanf,sscanf等函数实现的源码。源码的形式主要是.c,名称是大写,例如PRINTF.c,库的组织形式是很清晰的。