困扰了我两天的破玩意,现在终于明白了点,写下来,以后还可以回头看看。

#include <stdio.h>
#include <ctype.h>
int main(void)
{
    char ch;
    
    ch = getchar();
    while(ch != '\n')
    {
        if(isalpha(ch))
            putchar(ch + 1);
        else
            putchar(ch);
        ch = getchar();
    }
    putchar(ch);    //打印换行字符
    return 0;
}

和下面的这个例子效果是一样一样的,哎:

#include <stdio.h>
#include <ctype.h>
int main(void)
    char ch;
    
    while((ch = getchar()) != '\n')
    {
        if(isalpha(ch))
            putchar(ch + 1);
        else
            putchar(ch);
    }
    putchar(ch);      //打印换行字符
    return 0;
}


还有对于这样的,

while((ch = getchar()) != '#')
    ;      //  此刻不以换行为终止符
    return 0;

而如果是这样:

while((ch = getchar()) != '#')
    return 0;   //  此刻以回车结束程序。
    
while((ch = getchar()) != '\n')
    ;
    return 0;
与while((ch = getchar()) !='\n')
     return 0;
     
 这两个产生的效果是一样的,输入的东西不会再次打印出来,而是以换行作为终止符停止程序。