while循环嵌套外层循环达到测试条件却不执行

当输入空格时程序回到最外层的while,但是不向下执行

#include
int main()
{
char ch;
int space=0; //空格数
int n=0; //换行数
int word=0; //字符数
while((ch=getchar())!='#')
{
word++;
while((ch=getchar())==' ')
{
space++;
}
while((ch=getchar())=='\n')
{
n++;
break;
}
}
printf("一共有%d个字符,%d个空格,%d个换行",word-n-space,space,n);
}

不知道你是不是这个意思:

#include <stdio.h>
int main()
{
    char ch;
    int space = 0; //空格数
    int n = 0;     //换行数
    int word = 0;  //字符数
    while ((ch = getchar()) != '#')
    {
        word++;
        if(ch == ' ')
        {
            space++;
        }
        else if(ch == '\n')
        {
            n++;
        }
    }
    printf("一共有%d个字符,%d个空格,%d个换行", word - n - space, space, n);
}