| 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データの取り扱いには、構造体を使うこと。
|
この問題のプログラム例
(
CD.c)
をリスト
2に示す。
リスト2:CDのデータをファイル
に出力
01: #include <stdio.h>
02:
03:
04: struct cd_data{
05: char title[64];
06: char artist[64];
07: char song[6][64];
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);
21: write_file(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:
56:
57: int write_file(struct cd_data CD[]){
58: FILE *wfile;
59: int i,j;
60:
61: wfile = fopen("CDdata.txt","w");
62:
63:
64:
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: }
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成17年6月6日