Share via


格式规范字段:scanf和wscanf功能

此处的信息应用于整个 scanf 函数族,包括安全版本和描述了用于的符号指示 scanf 功能如何分析超出,例如 scanf的输入流 stdin ,若要插入程序变量的值。

格式规范具有以下形式:

%*[] [宽度] [{}]类型h|l|ll|I64|L

format 参数指定输入的解释,并且可以包含一个或多个以下各项:

  • 空白字符:空白 (");选项 (“\ t);或换行符 (\ n “)。 空白字符会导致不是 scanf 读取,但是,存储,在中输入的所有连续的空白字符到下非空白字符。 空白字符格式与任何空白字符数 (包括 0) 和组合中输入的。

  • 非空白字符,但百分号 (%)。 非空白字符会导致不是 scanf 读取,但是,存储,匹配非空白字符。 如果在输入流中的下一个字符不匹配, scanf 停止。

  • 格式规范,引入了百分号 (%)。 格式规范导致 scanf 读取和将输入的字符转换为指定类型的值。 该值赋给的参数参数列表。

布局从左向右读取。 在格式规范外的字符应匹配字符序列在输入流的;在输入流的匹配字符浏览,但未存储。 如果在输入流中的字符相冲突。格式规范, scanf 停止,并且,字符在输入流左侧,如同未读取。

当第一个格式规范遇到时,第一个输入字段的值基于此规范转换第一 argument指定的位置。 第二个格式规范在第二 argument导致第二个输入字段转换和存储,依此类推通过格式字符串的末尾。

输入字段定义,当所有字符到第一个空白字符 (空格、制表符、换行符),或者到不能根据格式规范转换的第一个字符,或在字段宽度 (如果指定) 为止。 如果具有特定规范的参数太多,额外参数的计算,但忽略。 ; 如果没有格式规范的,匹配的足够参数结果是不可预知的。

格式规范的每个字段是单个字符或数字表示特定布局选项。 type 字符,在最后一个选项格式字段后面,确定输入字段是否被解释为字符、字符串和数字。

最简单的格式规范包含百分号和一 type 字符 (例如, %s)。 如果百分号 (%) 没有意义作为窗体控件的字符后跟,该字符和以下字符 (到下一个百分号) 将字符一个普通的顺序,即,必须匹配输入字符的序列。 例如,指定将输入 PERCENT 符号字符,使用 %%。

百分号后面的星号 (*) 取消下输入字段的分配,解释,指定类型的字段。 字段浏览,但未存储。

安全版本 (在与 _s 后缀的函数) scanf 系列需要缓冲区大小参数在类型后通过 c、 C、 s、 S 或 [的每个参数。 有关功能 scanf 系列的更多信息安全版本,请参见 scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

请参见

参考

scanf宽度规范

scanf类型字段字符

scanf, _scanf_l, wscanf, _wscanf_l

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l