###前提
書籍で勉強している学生です。
書籍の解答がないため問題のヒントや解説をしていただけると嬉しいです。
###問題
キーボードからファイル名を読み込んで、その名前のファイルの中身を消去するプログラムを作成せよ。
*ファイルを書き込みモードでオープンするとよい(ファイルを書き込みモード”w”でオープンすると、ファイルの中身がすべて消去される。)
###該当のソースコード
lang
1#include <stdio.h> 2 3#define MAX 100 //ファイルの名前 4 5int main (void){ 6 FILE *fp; 7 char fname[MAX]; 8 9 printf("file name : "); 10 scanf("%s", fname); 11 12 fp = fopen(fname, "r"); 13 14 if(fp == NULL){ 15 printf("\afile %s is not exist.\n", fname); 16 }else{ 17 printf("file %s is exist.\n", fname); 18 fclose(fp); /*---<A>---*/ 19 printf("erase data...\n"); 20 fopen(fname, "w"); 21 fclose(fp); 22 } 23 24 return 0; 25}
###疑問点
<A>の部分のfclose()関数を使用してもしなくても、動作をしたのですが、
どちらが、より安全にファイルを処理することが出来るかが知りたいです。
一回クローズしてからの方が安全なような気がします...
###補足情報
書籍 : 新明解c言語 入門編
演習 13-2
英語力不足のため、英文に誤りがあればそれもご指摘願います。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/27 03:17