题目:编写一个程序读取字符输入,读到#字符停止,然后报告读取的空格数、换行符数和所有其他字符的数量
#include<stdio.h>
int main() {
int num1 = 0, num2 = 0, num3 = 0;//依次表示空格数,换行符数、所有其他字符的数量为0
char ch;
while (1) {
printf("输入字符:");
scanf("%c", &ch);
if (ch == '#')
break;//如果输入#,则会跳出整个循环
if (ch == ' ')
num1++;
if (ch == '\n')
num2++;
else num3++;
}
printf("空格数为%d,换行符数为%d,所有其他字符数为%d", num1, num2, num3);
return 0;
}
debug:
我们可以看到除了第一行外,其余行每行都有两次printf语句输出,可是循环里面只有一个printf语句,为什么到了第二行每输入一个字符后按回车键就会连着出现两次printf中的语句?