关于scanf函数的输出结果缺失一个字符

关于scanf函数的输出结果缺失一个字符

图片描述
关于scanf函数,整数型和小数型的数据结果无误,但是字符的输出结果缺少一个,这是为什么呀?没有用空格、回车等分隔符。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答
因为第二个输入结束后还有一个\n字符,这样第三个是%c会读取\n字符,可以在第三个scanf之前用getchar()吃掉\n字符!
  • 老师您看我右侧的结果框,是date1没有字符输出,printf(“date1=%c\n”,c);语句前面没有“\n”,按道理输出的结果应该是:

    date1=c

    date2=e

    date3=f

    但是实际输出的结果是:

    date1=(没有)

    date2=c

    date3=e

    感觉scanf的第一个位置&c前面有什么东西被占用了,重写了好几遍代码,都是第一个没有结果输出,往下错位了都(第一个没有结果,第二个输出第一个,第三个输出第二个)


    2024-04-07 12:48:57
  • date1就是\n,您用%d输出一下字符的ascii码就知道了哦

    2024-04-07 15:16:53
  • https://img1.sycdn.imooc.com/climg/6613c1d3090365d303940222.jpg

    果真是这样,谢谢猿叔,我懂了。

    2024-04-08 18:07:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师