!='\n' 在这段代码里的作用?

下面是一段把输入的一行字符中的小写字母转成大写字母打印的代码。
发现把 while((c=getchar())!='\n')改成 while(c=getchar())后,运行出来的结果没有任何区别,
能否告知 !='\n' 在这里的作用?


#include "stdafx.h"
#include "windows.h"

int _tmain(int argc, _TCHAR* argv[])
{
   char c;
   char b;
   while((c=getchar())!='\n')
   {
       b=c;
       if(c>='a' && c<='z')
       {
           c=c-'a'+'A';
           putchar(c);
       }
       if(b<'a' || b>'z')
       {
           putchar(c);
       }
   }
   Sleep(10000);
   return 0;
}

img

\n表示换行符,!=\n就是指当输入值不是换行的时候,就执行循环体,否则退出循环体。也就是输入完后,要敲一个回车,代码检测到这个回车就停止循环了。

'\n'表示换行。如果用键盘敲一下回车键的话,getchar会返回一个换行符。
这里用!='\n'意思是不等于换行符就进入while,一旦换行就不进while,就执行Sleep(10000);然后return 0。