Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        2年前关闭。
                                                                                            
                
        
scanf是需要用户输入的功能。但是根据图片中的代码,编译器将34理解为“ y”的值,但这仅仅是x的被忽略的输入,因此有人可以解释吗?

c - Scanf和格式转换器-LMLPHP

最佳答案

读取两位%2d后,将停止扫描12指令。这样将“ 3”保留为输入流中的下一个字符。

然后,格式字符串中的空格字符表示要跳过空格字符(空格,制表符等)(如果有)。没有,因此“ 3”保留在输入流中的下一个字符。

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

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

07-24 09:44
查看更多