if(!(fp=fopen(...)))は括弧が多くてみづらいってことじゃないの?