vfwscanf_s
vwscanf, vfwscanf, vswscanf, vwscanf_s, vfwscanf_s, vswscanf_s
Defined in header | | |
---|---|---|
int vwscanf( const wchar_t *restrict format, va_list vlist | (1) | (since C99) |
int vfwscanf( FILE *restrict stream, const wchar_t *restrict format, va_list vlist | (2) | (since C99) |
int vswscanf( const wchar_t *restrict buffer, const wchar_t *restrict format, va_list vlist | (3) | (since C99) |
int vwscanf_s( const wchar_t *restrict format, va_list vlist | (4) | (since C11) |
int vfwscanf_s( FILE *restrict stream, const wchar_t *restrict format, va_list vlist | (5) | (since C11) |
int vswscanf_s( const wchar_t *restrict buffer, const wchar_t *restrict format, va_list vlist | (6) | (since C11) |
从各种来源读取数据,根据其解释并将format
结果存储到由其定义的位置vlist
。
1)从中读取数据stdin
。
2)从文件流中读取数据stream
。
3)从空终止的宽字符串中读取数据buffer
。到达字符串的末尾等同于达到文件结束条件fwscanf
4-6)同(1-3),所不同的是%c
,%s
和%[
转换说明每个期望两个参数(通常的指针和类型的值rsize_t
指示所述接收阵列的大小,其可以是1附有%LC读取时成一个单一的宽字符),除了在运行时检测到以下错误并调用当前安装的约束处理函数:
- 指针类型的任何参数都是空指针
由于所有的边界检查功能,vwscanf_s,vfwscanf_s,和vswscanf_s仅保证可供如果__STDC_LIB_EXT1__由实现所定义,并且如果用户定义__STDC_WANT_LIB_EXT1__的整数常数1,包括之前<wchar.h>。
参数
转换 | 说明 | 参数类型 |
---|---|---|
说明符 | ||
长度修饰符 | hh | |
(C99)。 | ||
% | 匹配文字 % | N / A |
c | 匹配一个字符或一系列字符 | N / A |
如果使用宽度说明符,则完全匹配宽度宽的字符(参数必须是指向具有足够空间的数组的指针)。与%s和%[不同,不会将空字符追加到数组。 | ||
s | 匹配一系列非空白字符(一个字符串) | |
如果使用宽度说明符,则匹配宽度或直到第一个空白字符(以先出现者为准)。除了匹配的字符外,总是存储一个空字符(所以参数数组必须至少有宽度+ 1个字符的空间)。 | ||
[组] | 匹配一组字符中的非空字符序列。 | |
如果该集合的第一个字符是^,则不匹配该集合中的所有字符。如果集合以该字符开头]或者^]该]字符也包含在集合中。它是实现定义的-,即扫描集中非初始位置的字符是否可以指示范围,如in [0-9]。如果使用宽度说明符,则只匹配宽度。除了匹配的字符外,总是存储一个空字符(所以参数数组必须至少有宽度+ 1个字符的空间)。 | ||
d | 匹配一个十进制整数。 | signed char* 要么 unsigned char* |
数的格式是相同的通过按预期wcstol()与值10的base参数。 | ||
i | 匹配一个整数。 | |
数的格式是相同的通过按预期wcstol()与值0的base参数(基部由解析的第一字符确定)。 | ||
u | 匹配一个无符号的十进制整数。 | |
数的格式是相同的通过按预期wcstoul()与值10的base参数。 | ||
o | 匹配一个无符号的八进制整数。 | |
数的格式是相同的通过按预期wcstoul()与值8的base参数。 | ||
x, X | 匹配一个无符号的十六进制整数。 | |
数的格式是相同的通过按预期wcstoul()与值16的base参数。 | ||
n | 返回到目前为止读取的字符数。 | |
没有输入被消耗。不增加分配计数。如果说明符具有定义的分配抑制运算符,则行为未定义。 | ||
a,A(C99) , | 匹配一个浮点数。 | N / A |
e,,E | 数字的格式与预期的相同wcstof()。 | |
fF | ||
gG | ||
p | 匹配定义指针的实现定义的字符序列。 | N / A |
printf函数族应该使用%p格式说明符产生相同的序列。 |
返回值
1-3)成功分配的接收参数数目,或者EOF
在分配第一个接收参数前发生读取失败。
4-6)与(1-3)相同,但是EOF
如果存在运行时约束冲突,也会返回。
注意
所有这些函数都可以调用va_arg
,arg
返回后的值是不确定的。这些函数不会调用va_end
,并且它必须由调用者完成。
例
参考
- C11 standard (ISO/IEC 9899:2011):