网站建设方案选择实现方式,核心关键词,wordpress转enlog,建筑公司会计账务处理做题的时候有时会用到getchar()接收换行符#xff0c;然而让人困惑的是一般使用scanf(%s, str)这样的形式读取字符串的时候似乎并没有考虑这个问题。网上通常会给你讲大道理缓冲区啥的#xff0c;然后听懂后自己得不得的出结论全看天赋#xff08;摊手#xff…做题的时候有时会用到getchar()接收换行符然而让人困惑的是一般使用scanf(%s, str)这样的形式读取字符串的时候似乎并没有考虑这个问题。网上通常会给你讲大道理缓冲区啥的然后听懂后自己得不得的出结论全看天赋摊手所以在这里直接下结论了
1.一个scanf后的确有回车在缓冲区里但是scanf(%s, str)这样的不会把之前留下的换行符读取掉就是无视了。这就是平时用%s解决“一个数字后面跟N个字符串”这样的输入没有问题的原因。
2.相对的如果用%c那就要考虑接收换行符的事情了在这里插入图片描述
例如这样的话在缓冲区的空格就会被读取所以两个scanf中间需要getchar()。再次吐槽某些实验贴出代码一长串还要自己先找关键代码段
3.gets()也是会读取之前留下来的换行符的所以也需要一个getchar()。类似实验可以参照2的截图设置断点或者用printf查看输出结果都行。