Lesson 8-2 |
---|
音楽CD 10枚に入っている曲 (各CDには6曲) を入力し、テキストファイルに記録するプロ
グラムを作成しなさい。ただし、作成するテキストファイル(CDdata.txt)は次の通りとし
ます。CD1 title: Zokkon C GENGO Artist: Hoge Maru song1: Ikeike hensuu song2: Hairetu BANZAI ・ ・ ・ song6: Saraba Kozoutai CD2 Title: Love Love C Artist: etc etcプログラム中のCDデータの取り扱いには、構造体を使うこと。 |
01: #include <stdio.h> 02: 03: /* ---- 構造体 ---- */ 04: struct cd_data{ 05: char title[64]; /* タイトル名を入れる配列 */ 06: char artist[64]; /* アーティスト名を入れる配列 */ 07: char song[6][64]; /* 曲名をいれる配列 6曲まで入力可 */ 08: }; 09: 10: /* ---- プロトタイプ宣言 ---- */ 11: int data_input(struct cd_data CD[]); 12: int write_file(struct cd_data CD[]); 13: 14: /*==================================================================*/ 15: /* メイン関数 */ 16: /*==================================================================*/ 17: int main(void){ 18: struct cd_data CD[10]; 19: 20: data_input(CD); /* CDのデータを入れる関数呼び出し */ 21: write_file(CD); /* CDのデータをファイル出力する関数呼び出し */ 22: 23: return 0; 24: } 25: 26: /*==================================================================*/ 27: /* データの入力 */ 28: /*==================================================================*/ 29: int data_input(struct cd_data CD[]){ 30: int i,j; 31: 32: for(i=0; i<10; i++){ 33: 34: printf("\n--------------------------------------------------\n"); 35: printf("%d番目のCDについてです。\n", i+1); 36: 37: printf("タイトル?\t"); 38: fgets(CD[i].title,64,stdin); /* 空白を含めてタイトル読み込み */ 39: 40: printf("\nアーティスト?\t"); 41: fgets(CD[i].artist,64,stdin); /* 空白を含めてアーティスト読み込み */ 42: 43: for(j=0; j<6; j++){ 44: printf("\n\t%d番目の曲目?\t",j+1); 45: fgets(CD[i].song[j],64,stdin); /* 空白を含めて曲名読み込み */ 46: } 47: 48: } 49: 50: return 0; 51: 52: } 53: 54: /*==================================================================*/ 55: /* データのfile出力 */ 56: /*==================================================================*/ 57: int write_file(struct cd_data CD[]){ 58: FILE *wfile; 59: int i,j; 60: 61: wfile = fopen("CDdata.txt","w"); /* 書き込み用fileのオープン */ 62: 63: 64: /* ---- 10個のCDタイトルの書き込み ---- */ 65: for(i=0; i<10; i++){ 66: 67: 68: fprintf(wfile, "CD%d Title: %s", i+1, CD[i].title); /* タイトル */ 69: fprintf(wfile, "Artist: %s", CD[i].artist); /* アーティスト*/ 70: 71: for(j=0; j<6; j++){ /* 曲名 */ 72: fprintf(wfile,"song%d: %s", j+1, CD[i].song[j]); 73: } 74: 75: } 76: 77: fclose(wfile); /* 書き込み用のファイルのクローズ */ 78: 79: return 0; 80: 81: }