今天做题过程中发现的,总结一下


   先看例子:

scanf可能遇到的陷阱





scanf可能遇到的陷阱


 


换言之,第二个%c读入的是空格,导致第3个%d类型不匹配,没有赋上值


再看:

scanf可能遇到的陷阱



scanf是从标准输入缓冲区中读取输入的数据,而%c的字符输入格式会接收回车和空格字符,在输入第一个scanf时输入字符后按回车结束,输入缓冲中保存了这个回车符,遇到第二个scanf时,它自动把这个回车符赋给了ch2 (回车只是一种特殊的字符,属于字符型,所以可以赋上值)


总结就是:char会读取缓冲区的空格和回车,谨记!

那么怎么处理呢?
方法就是读入数据时加空格或者getchar()及时清理

scanf可能遇到的陷阱


scanf可能遇到的陷阱

相关文章:

  • 2022-12-23
  • 2021-09-22
  • 2021-08-04
  • 2021-07-18
  • 2021-08-27
  • 2022-12-23
  • 2021-10-02
  • 2021-10-19
猜你喜欢
  • 2022-03-07
  • 2021-10-19
  • 2021-06-05
  • 2022-01-06
  • 2021-07-08
  • 2021-06-03
相关资源
相似解决方案