【问题标题】:Scanf and format changer [closed]Scanf和格式转换器[关闭]
【发布时间】:2018-12-24 16:47:11
【问题描述】:

scanf 是一个接受用户输入的函数。但是根据图中的代码编译器将34理解为“y”的值,但它只是x的被忽略的输入,那么有谁能解释一下吗?

【问题讨论】:

  • 请在问题中包含您的代码,而不是发布指向它的链接(更糟糕的是,链接到它的 图像)。
  • (也包括输入(使其成为引号):您是否要输入 4 位 x 值?))
  • 对不起,有些人只知道搁置或删除。尝试帮助某人。

标签: c input user-input


【解决方案1】:

当两个数字 12 已被读取时,停止扫描 %2d 指令。留下“3”作为输入流中的下一个字符。

然后格式字符串中的空格字符表示跳过空格字符(空格、制表符等),如果有的话。没有,所以“3”仍然是输入流中的下一个字符。

然后%d 说明符导致读取十进制整数,因此将 34 分配给 y

如果您希望跳过扫描x 后剩余的数字,您可以使用%*[0-9] 扫描并忽略数字,直到看到非数字。如%2d%*[0-9] %d %*f %5s

【讨论】:

  • 感谢 Eric Postpischil
猜你喜欢
  • 2010-09-30
  • 2019-04-05
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
  • 2010-12-22
  • 1970-01-01
  • 2021-05-14
  • 2020-04-13
相关资源
最近更新 更多