不要因为自己的无知而把责任推卸给别人:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int ch;
while((ch=getchar()) != 'g' && ch != EOF)
putchar(ch);
return 0;
}
下面的也可以,但是不推荐,因为scanf在%c下行为特殊,比较容易被人误会:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char ch;
while(scanf("%c",&ch) == 1 && ch != 'g')
printf("%c",ch);
return 0;
}
或者这样,这样虽然没有用到复杂的表达式,但是实现比较迂回,除非可以要显示最后的g,否则不推荐:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char ch;
do
putchar(ch = getchar());
while (ch != 'g' && ch != EOF);
printf("\b \b"); // 这行为了去掉最后的g
return 0;
}
结论:你可以想出N种只有一个输入语句的书写程序的方法,可是为什么LZ还是用了最笨(不好意思应该不是最笨,因为肯定有更笨的)方法呢?