プロが教える店舗&オフィスのセキュリティ対策術

gifts.datからデータを読み込みgiftへのポインタの配列に格納し、「この時に読み込むデータ関数を標準入力から指定し、その数だけメモリを確保。また、読み込んだファイルはgifts.datとは別のファイルに出力し、さらに入力ファイル名と出力ファイル名を標準入力から指定できるようにする」プログラムなのですが「」の中身のプログラムがわかりません。是非、教えてください。


ちなみに実行結果としては、

データ数を入力してください:4
入力ファイルを指定してください:gifts.dat
出力ファイルを指定してください:gifts2.dat
表示形式変換ファイルに出力しました。


#include <stdio.h>

typedef struct { /*構造体の設定char2つとint1つ*/
char code[1000];
char name[1000];
int price;

}gift_t; /*構造体giftを設定*/

int main(void){

gift_t *gift;

int i;
printf("データ数を入力してください:")
scanf("%d",i);

FILE *fp;

if((fp=fopen("gifts.dat","r"))==NULL){ /*条件式NULL文字ならエラー,ファイルのオープン*/
printf("ファイルをオープンできません.\n"); /*エラー処理*/
}

while(fscanf(fp,"%c",&signature)!=EOF) { /*ファイルの中身を最後まで読む式*/
putchar(signature); /*表示・出力*/
}
fclose(fp); /*ファイルを閉じる*/
}

gift=(gift_t*)malloc(sizeof(gift_t)*i); //指定されたファイルを開き4で確保した構造体にデータを格納

FILE *fp;
if((fp=fopen("gifts2.dat","r"))==NULL){ //FILE名gift.datを読み込む条件式
printf("ファイルをオープンできません。"); //エラー処理
}
fclose(fp);

FILE *fp;
if((fp=fopen("gifts.dat","r"))==NULL){ //FILE名gift.datを読み込む条件式
printf("ファイルをオープンできません。"); //エラー処理
}

fclose(fp);

return 0;
}

A 回答 (2件)

↓同じ質問をしている方がいますよ。


https://oshiete.goo.ne.jp/qa/9468538.html
    • good
    • 0

全体として何をやりたいのかはっきりしないんだが, 全部まとめて考えるからわからないだけ... だといいなぁ. たとえば


「読み込むデータ関数を標準入力から指定」
とか
「入力ファイル名と出力ファイル名を標準入力から指定」
とかの部分はわかりますか?
    • good
    • 0
この回答へのお礼

入力ファイル名と出力ファイル名は、実行して、自分が適当に作ったファイルに行うものだと思います。

読み込むデータ関数を標準入力から指定のところは、わからないですね。

お礼日時:2016/10/18 10:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!