诺莫瑞根 2022-11-04 19:58 采纳率: 0%
浏览 31

【STM32/C语言基础】请教一个关于getchar的小问题

这里通过ch=getchar();是得到单个字符对吗?
我发送12345,
为什么接受到的结果是

ch=1;
ch=2;

啊?
我觉得结果要么是

ch=1

要么是

ch=1;
ch=2;
ch=3;
ch=4;
ch=5;

才对啊

img


谢谢

/-------------------------------------------------------------------------------------/
补充一下问题,这下彻底懵了
听取评论的建议
我把%c之后的换行符删去之后,
输入5个数以内1234,会出来1和2
输入9个数以内12345678,会出来1和2和5
输入13个数以内123456789abc,会出来1和2和5和9
输入17个数以内123456789abcdef1,会出来1和2和5和9和d
再输入第17个数的话123456789abcdef12,就变成1和2和5和9和d和2
也就是说第1,2,5,9,13,17位被输出了,其他位不见了。

img

我再把%c之后的换行符加上(或者在%c后面加一个空格),
现在变成了第1,2,6,11,16位被输出了,其他位不见了。

img

以上情况LED灯都会按照输出的最后一个字符正常亮灭。
感觉我已经不指望能解决这个问题了,留给有兴趣的兄弟吧,感谢你们

  • 写回答

3条回答 默认 最新

  • sim_fg 2022-11-04 20:02
    关注

    因为接收到一个字符后,printf里面的换行被getchar获取到,所以第二次getchar的时候就没了

    评论

报告相同问题?

问题事件

  • 修改了问题 11月5日
  • 创建了问题 11月4日

悬赏问题

  • ¥15 求解决为什么json数据完整,却解析失败
  • ¥15 打开Smart schedule运行examples/transformer-xl/scripts/run_enwik8_base_moe.sh 报错
  • ¥15 求一个C# sm4 加密解密的代码
  • ¥15 想做个网络加速器,怎么实现
  • ¥20 centos7下载mysql提示DNS解析异常
  • ¥20 vx转账功能对方不能领取
  • ¥15 vue2+codemirror 运行后页面光标太大了
  • ¥15 pdfjs库如何在前端实现打印、旋转等功能
  • ¥15 combobox数据绑定问题
  • ¥15 maven打包时,为什么有的依赖打不进去包