#1
by kero_nao » 5年前
C言語でファイルを読み込む処理をしたいのですが、おかしなことになります。
ただ、while文の中にprintf文を書いて、スキャンした傍から出力すると、問題なく表示されました。
コンパイラはVisual Studioです。
コード:
int i = 0;
FILE* fp;
char chr[128][5][12];
/*データを読み込み*/
fopen_s(&fp, "chords.dat", "r");
while(fscanf_s(fp, "%s %s %s %s %s\n", chr[i][4], _countof(chr[i][4]), chr[i][0], _countof(chr[i][0]), chr[i][1], _countof(chr[i][1]), chr[i][2], _countof(chr[i][2]), chr[i][3], _countof(chr[i][3])) != EOF) {
i++;
/*ここにprintf文を入れると上手く表示される*/
}
c_cnt = i; /*コード数を記録*/
fclose(fp);
/*表示*/
for (i = 0; i < c_cnt; i++) {
printf("%d %s\n", i, chr[i][4]);
printf("\n");
}
どなたかわかる方いらっしゃいませんか?
~chords.datの中身~
- C C E G 0
Cm C D# G 0
C7 C E G A#
CM7 C E G B
Cm7 C D# G A#
Csus4 C F G 0
Cadd9 C D E G
D D F A# 0
Dm D F A 0
D7 D F# A C
DM7 D F# A C#
Dm7 D F A C
Dsus4 D G A 0
Dadd9 D E F# A
E E G# B 0
Em E G B 0
E7 E G# B D
Em7 E G B D
EM7 E G# B D
Esus4 E A B 0
Eadd9 E F# G# B
F F A C 0
Fm F G# C 0
F7 F A C D#
FM7 F A C E
Fm7 F G# C D#
Fsus4 F A# C 0
Fadd9 F G A C
G G B D 0
Gm G A# D 0
G7 G B D F
GM7 G B D F#
Gm7 G A# D F
Gsus4 G C D 0
Gadd9 G A B D
A A C# E 0
Am A C E 0
A7 A C# E G
AM7 A C# E G#
Am7 A C E G
Asus4 A D E 0
Aadd9 A B C# E
B B D# F# 0
Bm B D F# 0
Bm7-5 B D F A
B7 B D# F# A
BM7 B D# F# A#
Bm7 B D F A#
Bsus4 B E F# 0
Badd9 B C# D# F#
~表示される内容~
0 E: C E G -
1 Cm: C D# G -
2 D: C E G A#
3 CM7: C E G B
4 Cm7: C D# G A#
5 CsusE: C F G -
6 G: C D E G
7 D: D F A# -
8 Dm: D F A -
9 D7: D F# A C
10 DM7: D F# A C#
11 Dm7: D F A C
12 B: D G A -
13 Dadd9: D E F# A
14 E: E G# B -
15 Em: E G B -
16 E: E G# B D
17 Em7: E G B D
18 0: E G# B D
19 Esus4: E A B -
20 Eadd9: E F# G# B
21 F: F A C -
22 Fm: F G# C -
23 F7: F A C D#
24 FM7: F A C E
25 Fm7: F G# C D#
26 Fsus4: F A# C -
27 Fadd9: F G A C
28 G: G B D -
29 Gm: G A# D -
30 G7: G B D F
31 GM7: G B D F#
32 Gm7: G A# D F
33 Gsus4: G C D -
34 Gadd9: G A B D
35 A: A C# E -
36 Am: A C E -
37 A7: A C# E G
38 AM7: A C# E G#
39 Am7: A C E G
40 Asus4: A D E -
41 Aadd9: A B C# E
42 B: B D# F# -
43 Bm: B D F# -
44 Bm7-5: B D F A
45 B7: B D# F# A
46 BM7: B D# F# A#
47 Bm7: B D F A#
48 Bsus4: B E F# -
49 Badd9: B C# D# F#
C言語でファイルを読み込む処理をしたいのですが、おかしなことになります。
ただ、while文の中にprintf文を書いて、スキャンした傍から出力すると、問題なく表示されました。
コンパイラはVisual Studioです。
[code]
int i = 0;
FILE* fp;
char chr[128][5][12];
/*データを読み込み*/
fopen_s(&fp, "chords.dat", "r");
while(fscanf_s(fp, "%s %s %s %s %s\n", chr[i][4], _countof(chr[i][4]), chr[i][0], _countof(chr[i][0]), chr[i][1], _countof(chr[i][1]), chr[i][2], _countof(chr[i][2]), chr[i][3], _countof(chr[i][3])) != EOF) {
i++;
/*ここにprintf文を入れると上手く表示される*/
}
c_cnt = i; /*コード数を記録*/
fclose(fp);
/*表示*/
for (i = 0; i < c_cnt; i++) {
printf("%d %s\n", i, chr[i][4]);
printf("\n");
}
[/code]
どなたかわかる方いらっしゃいませんか?
[color=#0000FF]
~chords.datの中身~
[list=0]
C C E G 0
Cm C D# G 0
C7 C E G A#
CM7 C E G B
Cm7 C D# G A#
Csus4 C F G 0
Cadd9 C D E G
D D F A# 0
Dm D F A 0
D7 D F# A C
DM7 D F# A C#
Dm7 D F A C
Dsus4 D G A 0
Dadd9 D E F# A
E E G# B 0
Em E G B 0
E7 E G# B D
Em7 E G B D
EM7 E G# B D
Esus4 E A B 0
Eadd9 E F# G# B
F F A C 0
Fm F G# C 0
F7 F A C D#
FM7 F A C E
Fm7 F G# C D#
Fsus4 F A# C 0
Fadd9 F G A C
G G B D 0
Gm G A# D 0
G7 G B D F
GM7 G B D F#
Gm7 G A# D F
Gsus4 G C D 0
Gadd9 G A B D
A A C# E 0
Am A C E 0
A7 A C# E G
AM7 A C# E G#
Am7 A C E G
Asus4 A D E 0
Aadd9 A B C# E
B B D# F# 0
Bm B D F# 0
Bm7-5 B D F A
B7 B D# F# A
BM7 B D# F# A#
Bm7 B D F A#
Bsus4 B E F# 0
Badd9 B C# D# F#
[/list]
[/color]
[color=#004000]
~表示される内容~
0 [highlight=yellow]E[/highlight]: C E G -
1 Cm: C D# G -
2 [highlight=yellow]D[/highlight]: C E G A#
3 CM7: C E G B
4 Cm7: C D# G A#
5 [highlight=yellow]CsusE[/highlight]: C F G -
6 [highlight=yellow]G[/highlight]: C D E G
7 D: D F A# -
8 Dm: D F A -
9 D7: D F# A C
10 DM7: D F# A C#
11 Dm7: D F A C
12 [highlight=yellow]B[/highlight]: D G A -
13 Dadd9: D E F# A
14 E: E G# B -
15 Em: E G B -
16 [highlight=yellow]E[/highlight]: E G# B D
17 Em7: E G B D
18 [highlight=yellow]0[/highlight]: E G# B D
19 Esus4: E A B -
20 Eadd9: E F# G# B
21 F: F A C -
22 Fm: F G# C -
23 F7: F A C D#
24 FM7: F A C E
25 Fm7: F G# C D#
26 Fsus4: F A# C -
27 Fadd9: F G A C
28 G: G B D -
29 Gm: G A# D -
30 G7: G B D F
31 GM7: G B D F#
32 Gm7: G A# D F
33 Gsus4: G C D -
34 Gadd9: G A B D
35 A: A C# E -
36 Am: A C E -
37 A7: A C# E G
38 AM7: A C# E G#
39 Am7: A C E G
40 Asus4: A D E -
41 Aadd9: A B C# E
42 B: B D# F# -
43 Bm: B D F# -
44 Bm7-5: B D F A
45 B7: B D# F# A
46 BM7: B D# F# A#
47 Bm7: B D F A#
48 Bsus4: B E F# -
49 Badd9: B C# D# F#
[/color]