当前位置:网站首页 > 技术博客 > 正文

scanf函数的用法及注意事项



转换说明符 描述

d

匹配符号可选的十进制整数,其格式与基数为的函数主题序列的预期格式相同。对应参数应为指向有符号整数的指针。

i

匹配符号可选的八进制、十进制或者十六进制整数,其格式与基数为的函数主题序列的预期格式相同。对应参数应为指向有符号整数的指针。

o

匹配符号可选的八进制整数,其格式与基数为的函数主题序列的预期格式相同。对应参数应为指向无符号整数的指针。

u

匹配符号可选的十进制整数,其格式与基数为的函数主题序列的预期格式相同。对应参数应为指向无符号整数的指针。

x

匹配符号可选的十六进制整数,其格式与基数为的函数主题序列的预期格式相同。对应参数应为指向无符号整数的指针。

a、e、f、g

匹配符号可选的浮点数、无穷大或者非数值,其格式与函数主题序列的预期格式相同。对应参数应为指向浮点数的指针。

c

匹配由字段宽度指定长度的字符序列;如果不存在字段宽度符,字段宽度为。

如果不存在长度修饰符,对应的第个参数应为一个指向字符数组初始元素的指针,并且指向的字符数组足以容纳字符序列,不会在数组末尾添加空字符。

如果存在长度修饰符,输入应为初始移位状态()开始的多字节字符序列,序列中的每个多字节字符就像反复调用函数一样转换成宽字符,第一个多字节字符转换前,将对象描述的转换状态初始化为。对应的第个参数应为一个指向类型数组初始元素的指针,并且指向的数组足以容纳转换后的宽字符序列,不会在数组末尾添加空宽字符。

s

匹配非空格字符序列。

如果不存在长度修饰符,对应的第个参数应为一个指向字符数组初始元素的指针,并且指向的字符数组足以容纳字符序列和终止空字符(终止空字符会被自动添加。)。

如果存在长度修饰符,输入应为初始移位状态()开始的多字节字符序列,序列中的每个多字节字符就像反复调用函数一样转换成宽字符,第一个多字节字符转换前,将对象描述的转换状态初始化为。对应的第个参数应为一个指向类型数组初始元素的指针,并且指向的数组足以容纳转换后的宽字符序列和终止空宽字符(终止空宽字符会被自动添加。)。

[

匹配非空字符序列,该序列中的字符均来源于指定字符集合(扫描集)。

如果不存在长度修饰符,对应的第个参数应为一个指向字符数组初始元素的指针,并且指向的字符数组足以容纳字符序列和终止空字符(终止空字符会被自动添加。)。

如果存在长度修饰符,输入应为初始移位状态()开始的多字节字符序列,序列中的每个多字节字符就像反复调用函数一样转换成宽字符,第一个多字节字符转换前,将对象描述的转换状态初始化为。对应的第个参数应为一个指向类型数组初始元素的指针,并且指向的数组足以容纳转换后的宽字符序列和终止空宽字符(终止空宽字符会被自动添加。)。

该转换说明符包括字符串中的所有后续字符,直至并包括匹配的右括号。括号间的字符(和之间的字符)构成指定字符集合(扫描集);如果左括号()后是符号,指定字符集合(扫描集)包括除和之间字符以外的所有字符。如果转换说明符以或者开头,右括号()将包含在指定字符集合(扫描集)中,下一个右括号()则是结束转换说明符的右括号();否则第一个右括号()则是结束转换说明符的右括号()。对于字符,如果不属于、、这些情况,其行为将由实现定义。

p

匹配实现定义的序列集,该序列集与函数转换说明生成的序列集相同。对应参数应为类型指针。输入项以实现定义的方式转换为指针值。如果输入项是同一程序执行期间较早的转换值,则结果指针应等于该值;否则转换说明行为是未定义的。

n

没有输入被消耗。对应参数应为一个指向有符号整数的指针,通过调用此函数从标准输入流中读取的字符数将写入该整数。对于该转换说明符,没有参数被转换,但消耗一个参数。执行指令不会增加函数执行完成时返回的赋值总数。如果转换说明包含字段宽度符或者赋值屏蔽符,其行为是未定义的。

%

匹配单个字符;不会发生转换或者赋值。完整转换说明应为。

版权声明


相关文章:

  • 深度置信神经网络2025-06-06 23:30:01
  • 单片机c语言例子2025-06-06 23:30:01
  • hashmap基本原理2025-06-06 23:30:01
  • 自学程序员怎么入门2025-06-06 23:30:01
  • 相机sdk是什么意思2025-06-06 23:30:01
  • 密码学的基础是什么2025-06-06 23:30:01
  • 特殊的空白符号2025-06-06 23:30:01
  • 跨域的几种方式2025-06-06 23:30:01
  • 数组和指针性质相同吗2025-06-06 23:30:01
  • 召回率 准确率曲线2025-06-06 23:30:01