我输入ABCDEFG之后出现了非字母数字字符

for( ;c=(getchar() !=\n’);) printf(“% c,c);

我输入ABCDEFG之后出现了非字母数字字符,这个循环是怎么运行的呢

你应该先给c赋值再判断 你这样写是先判断 把判断不是回车符 给赋值c了。。。
表达式先判断了getchar()得到的字符是否为换行
如果不是换行符返回1 ,是返回0 而你这块返回的肯定都是1
Anscii码1就是你打印的那个乱码



#include <stdio.h>
int main()
{
    char c=0;
    for (;(c =getchar()) != '\n';)
        printf("%c", c);
    return 0;
}