char yes_no = 'z';
int i = 0;
while ( ( yes_no != 'y' ) && ( yes_no != 'n') )
{
read( 0, &yes_no, 1 );
printf("%dA file already exists at your write location. Over write? (y/n)\n", i++);
}
Вывод выглядит следующим образом:
0A file already exists at your write location. Overwrite? (y/n)
1A file already exists at your write location. Overwrite? (y/n)
a
2A file already exists at your write location. Overwrite? (y/n)
3A file already exists at your write location. Overwrite? (y/n)
... и т. Д.
Зачем ему дважды проходить цикл вместо ожидания ввода пользователя каждый раз?