#include<stdio.h> int main() { char c; while((c=getchar()!=EOF)) { putchar(c);// } }Cada carácter de la salida es desplazado por "este tipo de cosas".
Sus paréntesis son incorrectos, por lo que a c se le asigna el valor de la condición, que es 0 o 1 ( false o true ).
Lo que tiene ahora es lo mismo que c = (getchar() != EOF) debido a la precedencia del operador .
Además, use el tipo correcto para c , que es int :
#include<stdio.h> int main() { int c; while( (c = getchar()) != EOF ) { putchar(c);// } }