Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
2年前关闭。
scanf
是需要用户输入的功能。但是根据图片中的代码,编译器将34理解为“ y”的值,但这仅仅是x的被忽略的输入,因此有人可以解释吗?最佳答案
读取两位%2d
后,将停止扫描12
指令。这样将“ 3”保留为输入流中的下一个字符。
然后,格式字符串中的空格字符表示要跳过空格字符(空格,制表符等)(如果有)。没有,因此“ 3”保留在输入流中的下一个字符。
然后,%d
说明符将导致读取十进制整数,因此将34分配给y
。
如果要跳过扫描x
之后剩余的数字,可以使用%*[0-9]
扫描并忽略数字,直到看到非数字为止。如%2d%*[0-9] %d %*f %5s
所示。