掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.26515

ファイルのオープンクローズについて
投稿者---rock(2006/03/23 23:59:01)


ただいま、ファイルの取得をするソースを書いているんですが
行き詰ってしまったので教えてください。
内容は、'*.log'、'*.txt'、'*.3glog'拡張子のファイルは成功を
そうでないファイルの場合には失敗を返す
そして、相対パス、絶対パスを使用しても可能というものです。

int main(int argc, char* argv[]) {

FILE *fp;
char str[256];
char filename[256];

printf("ファイル名を入力してください\n");
scanf("%s",filename);

// ファイルのオープン(ファイルポインタの取得)
fp = fopen("filename", "r");

// 指定したファイルがない場合
if (fp == NULL) {
printf("指定されたファイルはありません\n");
exit(1);
}


// 指定したファイルがあった場合fgetsでファイルから文字を読み込む
while (fgets(str, 256, fp) != NULL) {

// ファイルの中身を出力する
printf("%s", str);
}

// ファイルを閉じる
fclose(fp);

return 0;
}

ここまでは書けたのですがここからが分かりません。
どなたかアドバイスよろしくお願いいたします。



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ファイルのオープンクローズについて 26516 Hermit 2006/03/24 00:45:15
<子記事> Re:ファイルのオープンクローズについて 26518 επιστημη 2006/03/24 06:28:01


No.26516

Re:ファイルのオープンクローズについて
投稿者---Hermit(2006/03/24 00:45:15)


ちょっと意味が読み取りにくいですが、

>内容は、'*.log'、'*.txt'、'*.3glog'拡張子のファイルは成功を
>そうでないファイルの場合には失敗を返す

ということなので、

> scanf("%s",filename);

で取得した filename に対して、
strrchr(filename,'.');
したポインタに対して、
'.log'、'.txt'、'.3glog' と strcmp() すればいいだけではないでしょうか。


この投稿にコメントする

削除パスワード

No.26518

Re:ファイルのオープンクローズについて
投稿者---επιστημη(2006/03/24 06:28:01)


>ただいま、ファイルの取得をするソースを書いているんですが
>行き詰ってしまったので教えてください。
>内容は、'*.log'、'*.txt'、'*.3glog'拡張子のファイルは成功を
>そうでないファイルの場合には失敗を返す
>そして、相対パス、絶対パスを使用しても可能というものです。

わからんなー。
入力されたファイル名がその条件を満足しているか否かを調べるだけならオープンの必要はないんだけど。




この投稿にコメントする

削除パスワード

No.26522

ありがとうございました
投稿者---rock(2006/03/26 23:01:50)


Hermitさん
επιστημηさん
お忙しい中ご回答ありがとうございました。
おかげで解くことができましたので、遅くなりましたが
お礼を申し上げさせていただきます。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧