c语言getchar()putchar()问题

最近在看 c第二版英译版。有个问题并不解。
getchar()与putchar()
这是程序
int c;
c=getchar();
while(c!='\n')
putchar();
这里没有用fflush(stdin)函数清空,结果将无限循环显示。
而我用
while(c=getchar()!='\n')
putchar(c);
就不会循环。

请问各位大牛,这两个有什么区别,为什么结果就不一样?

第一种写法,c永远是第一次输入的值
第二种写法,每次循环c都会读取下一个字符,才有机会遇到\n而终止。

第一种写法c=getchar();只会执行一次,第二种写法每个循环都要执行c=getchar();判断输入是否是换行

哦,原来如此。谢谢哈!

// MyApp1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include

using namespace std;

int main(int argc, char* argv[])
{
char c;
while((c=getchar())!='\n')
putchar(c);
}

你少了括号

输入次数不同。
c=getchar();//输入一次
while(c!='\n')//只要输入不为结束符,将输入字符循环输出
putchar();

while(c=getchar()!='\n')//循环输入,每输入一次都做判断,只要不是结束符,就输出,遇到结束符循环输入结束~
putchar(c);

while(c=getchar()!='\n')你这里写错了,你有注意运算符优先级么?

第一种写法c=getchar();只会执行一次,第二种写法每个循环都要执行c=getchar();判断输入是否是换行