C语言scanf语句变量为什么同时输入两次?

如题所述

输入两次,是为了把上一个scanf的回车符号给接收掉。
ps:避免这种多余字符,还有很多方法,比如:
一、把字符输入写在第一个 ,后面的scanf都写数值的输入。
二、循环接收字符并判断,筛除回车符号。
三、在scanf输入字符前,调用fflush(stdin)清空输入缓存。
ps:题外提示,没有特殊需求,scanf格式中不要加多余符号,否则要按格式输入,像题目中a=%d,输入时也要输入字符a=以及逗号。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-05-30
因为在代码第7行的输入完成后,换行符还在键盘缓冲区里,在第8行读入字符时,第一个读入到c1的字符就是这个换行符,第二个读入到c1的字符才是正确的输入字符,所以须2次读入。
相似回答