>>262
だいぶ、配列と文字列をごっちゃにしてしまっているようだね。
fprintf (stdout, "input filename\n");
でコンソールに input filename を出力しているのだけれども、
次の scanf が問題で、これからも文字列を読み込むことができるけれどもスペースが来たときにそこで読み込みが終わってしまうから、
gets(fp) としてポインタを渡してファイル名を入力させたほうがいいね、このポインタがもんだいで、ただのポインタじゃあいけない。
配列として char fp[20] ; と確保したものと一緒に生成されたポインタ fp を渡さなくてはならない。
どちらにしろ、ポインタとしての fp は文字列配列 fp の先頭を指さなければならない。