如何使用getchar作为while循环的条件,并在(c=getchar()) = EOF或'\n‘或'\0’时终止循环。
我试过了:
int c=0;
while((c=getchar()) != EOF || '\n' || '\0'){
putchar();
}如果我输入天气(+enter),这就不起作用了。它没有终止循环。
我怎么才能让它工作呢?
把我读成英文
发布于 2011-11-06 21:20:51
你可以使用类似这样的东西:
int c = 0;
while((c=getchar()) != EOF) {
if ((c == 0) || (c == '\n'))
break;
putchar(c);
}发布于 2011-11-06 21:47:19
while ((c = getchar()) != EOF && c != '\n' && c != '\0')
{
// loop body
}这是因为&&运算符a)总是首先计算LHS表达式,b)引入序列点,因此LHS表达式中的任何副作用(例如将getchar的结果赋给c)将在计算RHS表达式之前应用。
发布于 2011-11-06 21:26:26
我认为这应该行得通:
int c;
while( (c=getchar()) != EOF && c!='\n' && c!='\0') {
putchar();
}但这样做可能更好:
int c=getchar();
while( c != EOF && c!='\n' && c!='\0'){
putchar();
c=getchar();
}https://stackoverflow.com/questions/8027213
复制相似问题