当前位置:   article > 正文

C语言[关于scanf接收输入时输入方式的一些细节]_scanf中逗号和空格

scanf中逗号和空格

这里我用的是vs2022。建议大家多实践,多自己动手发现问题。

这里我用这八种输入方式进行演示。

这是第一种输出方式,b没有正确输入是因为scanf里我们使用空格隔开,这里我们却使用了逗号隔开。当他遇到逗号的时候,b,x和y都无法识别,便不能正常输出。这时候,当 c1去识别它时,发现可以,所以输出了一个逗号,因为逗号也属于字符。接着便是c2识别逗号后边的b了

这是第二个输入方式,这里我们可以看到b输出了,但是在scanf里的float类型,我们直接用的%f,而不是x=%f,所以x=就显得多余了,所以x,y便无法识别。接着换c1去识别,发现了x,输出x,后面是等于号,便输出=。

这是第三个输入方式,我们可以看到a,b,x,y都是正常输出的,接着到c1去识别,遇到了空格,所以输出了空格,c2继续进行,遇到了A,所以输出了A。

这是第四种输入方式,经过一步步的改正,终于全部达到预想的结果了。可以看到,这个改进和第三种相比,区别便是把71.82这个小数后边的空格删去了,所以输出的是A,和我们上边所说的吻合。

这是第五种输入方式,和第一种输入方式犯的错误一样,都是输入时加了不该加的东西。

这是第六种输入方式,从这种方式我们可以看出,在输入正确时按回车后,会等待着识别下一个输入的东西,不会全部结束。

这是第七种输入方式,与第六种的区别是输入了A和a,但是结果仍然和第六种一样,更加说明在c2识别A之前,已经识别了其他东西了。至于是什么东西,我们接着往下看。

这是第八种输入方式,这里我们可以看到,全部按我们想象中正确的输出结果输出了。同上,在float类型的y识别完71.82之后会立刻去识别后边的东西,如果是空格便输出空格,是逗号便输出逗号,如果是回车便输入回车,这里是A,所以输出A,紧接着c2识别a。

这也解释了为什么第六种输入方式和第七种输入方式,c1输出的不是我们想要的结果,因为c1识别了71.82后边的那个我们按的回车键,这也解释了为什么最终结果里c1和c2不在同一行。

大家可以仔细观察

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/算法优化者/article/detail/62685
推荐阅读
相关标签
  

闽ICP备14008679号