Si tu veux que tout soit évalué, la méthode suivante marche théoriquement, mais les compilateurs ne voient peut-être pas la subtilité et se plantent en optimisant le code. A essayer :
while(!!(key = fgetchar()) & !!(key != 264))
{
*fill++ = (char) key;
}