这里我用的是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不在同一行。

大家可以仔细观察

C语言[关于scanf接收输入时输入方式的一些细节]相关推荐

  1. C语言中忽略scanf的价值,c语言的scanf接收到底是忽略空格还是不忽略呢?

    满意答案 SYLVIAZ0626 推荐于 2017.09.04 举几个例子,或许你就对这个函数理解了,由于一般都是用这两个字符控制输入的,所以只讨论空格回车的情况 1.输入数据为非char类型的情况: ...

  2. C语言之 scanf() 函数的用法

    C语言之 scanf() 函数的用法 输入一个正整数,对这个正整数中的各位进行比较,输出最大那个数 比如: 输入:123456789 输出:9 #include <stdio.h>int ...

  3. scanf 接收 空格 输入_【C语言】- printf 和scanf 函数详解!

    一.printf函数 这是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>,使用它可以向标准输出设备(比如屏幕)输出数据. 1.用法 1> p ...

  4. scanf 接收 空格 输入_【C/C++】【输入】关于scanf:输入空格,多次使用

    一.C/C++中带空格字符串的输入 C++中的cin和C中的scanf都是遇到空格或回车结束. 如果要让scanf接收空格,可以用读入字符集合的方式.%[] char a[100]; scanf(&q ...

  5. 输入两个数、用python求他们的和_从键盘上输入俩个实型数,编程求它们的和差积商,要求输出时,保留两位小数C语言编程题:从键盘上输入两个...

    从键盘上输入俩个实型数,编程求它们的和差积商,要求输出时,保留两位小数 C语言编程题:从键盘上输入两个 www.zhiqu.org     时间: 2020-11-23 参考代码: #includev ...

  6. C语言实现可写入文件的账号密码登录系统,密码输入时掩盖,登录界面菜单选择,更改密码系统,课设必备。

    账号登录系统在很多系统设计时都时必不可少的,今天这个登录系统功能较全,可以注册,登录,找回密码,修改密码,以及在输入密码时会有*将密码掩盖,还有完善地登录选择界面,废话不多,上代码! 目录 1.头文件 ...

  7. c语言用scanf输入指针字符串,c语言如何用scanf输入字符串

    在C语言中,可以使用"scanf("格式控制字符串",变量内存地址)"语句输入字符串.scanf()函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式 ...

  8. c语言如何用循环输入字符串,C语言使用scanf连续输入字符串出现的问题

    #include int main() { char a,b; scanf("%c",&a): scanf("%c",&b); printf(& ...

  9. double scanf输入时用%lf而printf用%f或%lf原理

    float是浮点型,double是double float的意思,也就是双精度浮点型.%f是以float类型格式化输入或输出,%lf是long float的意思(估计是和%ld对应),也就是指doub ...

最新文章

  1. 零基础该如何高效学Java?
  2. 如何在django项目中使用django-ckeditor
  3. java 构造块_java中构造方法、普通块、静态代码块、构造块的执行顺序
  4. 排序算法--冒泡排序
  5. VS2012新建项目
  6. 基于Javaweb校园代步工具租赁系统毕业设计源码061335
  7. 【重装系统Win10】U盘安装windows10正版操作系统 - 固体硬盘版(¥4.5-200)
  8. 王者荣耀官网制作心得
  9. mysql开发收银_农银e管家收银台PC版收款语音播报插件开发实录(二)
  10. 在word中输入文字后面的文字会被删除?原来是这么回事!
  11. 【硬件在环Hil联调问题记录1】
  12. EAUML日拱一卒-微信小程序实战:位置闹铃 (12)-这还不算完
  13. STM32编程---FlashRAM介绍
  14. h5前端开发之js的学习1
  15. android 平台的RNDIS功能
  16. 使用P2P直播加速技术,IPTV直播系统可以节省多少带宽?
  17. 传iPhone5和iPhone4s将同时发布
  18. java中elements类_jsoup的elements类
  19. 云资讯 | ABC有了更深的含义:它将重新定义互联网
  20. Windows结束任务管理器进程后,桌面消失如何解决?

热门文章

  1. 理想L9爆火背后,中国汽车厂商正在改变世界汽车格局
  2. matlab信号仿真模型,对Matlab单边带信号处理得到生动的仿真模型
  3. 【python】多视频截取图片
  4. 互联网的的三线城市发展
  5. 江南大学计算机科学与技术全国排名,2018年江南大学世界排名、中国排名、专业排名...
  6. linux下的/dev/shm/
  7. Android 黑科技保活实现原理揭秘
  8. revit插件:必易bim(快速建模软件)
  9. 浅谈Scrum(一)-- 什么是Scrum?
  10. Java8新特性_新时间和日期API-时间校正器