>>327
f = ftell();
fseek(fp, 0, SEEK_CUR);
fputc(c, fp);

つまり"r+"で開いたファイルは、fseek()すればそのすぐ次には書いてもよい。
一度でも書いたらまたfseek()もしくはrewind()しないと読めない。