質問編集履歴

1

追記

2017/08/15 15:48

投稿

sonozaki_SZ
sonozaki_SZ

スコア28

test CHANGED
File without changes
test CHANGED
@@ -33,3 +33,135 @@
33
33
 
34
34
 
35
35
  以上、ご教授お願いします。
36
+
37
+
38
+
39
+ 2017/08/16 追記
40
+
41
+ 下記のようにコードを記述したところ正常に動作しました。
42
+
43
+ ```
44
+
45
+ CSVファイル
46
+
47
+
48
+
49
+ ほげ,000-0000-0000,ほげほげ
50
+
51
+ ぴよ,111-1111-1111,ぴよぴよ
52
+
53
+ ほげら,222-2222-2222,ほげらっちょ
54
+
55
+ ```
56
+
57
+ ```C言語
58
+
59
+ #include <stdio.h>
60
+
61
+ #include <stdlib.h>
62
+
63
+
64
+
65
+ #define NAME_LEN 40
66
+
67
+ #define TEL_LEN 16
68
+
69
+ #define ADD_LEN 200
70
+
71
+ #define FNAME "address.csv" /* ファイルの名前 */
72
+
73
+
74
+
75
+ typedef struct prifo_t {
76
+
77
+ char name[NAME_LEN]; /* 名前 */
78
+
79
+ char tel[TEL_LEN]; /* 電話番号 */
80
+
81
+ char address[ADD_LEN]; /* 住所 */
82
+
83
+ struct prifo_t *next;
84
+
85
+ }prifo;
86
+
87
+
88
+
89
+ int main(void)
90
+
91
+ {
92
+
93
+ FILE *fp;
94
+
95
+ prifo *header, *pfp;
96
+
97
+
98
+
99
+ /* ファイルを読み込む */
100
+
101
+ if ((fp = fopen(FNAME, "r")) == NULL)
102
+
103
+ {
104
+
105
+ printf(FNAME"を開くことが出来ません\n");
106
+
107
+ exit(1);
108
+
109
+ }
110
+
111
+
112
+
113
+ /* 構造体にファイルのデータをコピー */
114
+
115
+ pfp = (prifo*)malloc(sizeof(prifo));
116
+
117
+ header = pfp; /* リストの先頭のアドレスを記憶 */
118
+
119
+ while (fscanf(fp, "%[^,],%[^,],%[^\n]\n", pfp->name, pfp->tel, pfp->address) != EOF)
120
+
121
+ {
122
+
123
+ pfp->next = (prifo*)malloc(sizeof(prifo));
124
+
125
+ pfp = pfp->next;
126
+
127
+ }
128
+
129
+ pfp->next = NULL;
130
+
131
+ fclose(fp);
132
+
133
+
134
+
135
+ /* テスト用 */
136
+
137
+ for (pfp = header; pfp->next != NULL; pfp = pfp->next)
138
+
139
+ {
140
+
141
+ printf("%s %s %s\n", pfp->name, pfp->tel, pfp->address);
142
+
143
+ }
144
+
145
+ return 0;
146
+
147
+ }
148
+
149
+ ```
150
+
151
+ ```
152
+
153
+ 実行結果
154
+
155
+
156
+
157
+
158
+
159
+ ほげ,000-0000-0000,ほげほげ
160
+
161
+ ぴよ,111-1111-1111,ぴよぴよ
162
+
163
+ ほげら,222-2222-2222,ほげらっちょ
164
+
165
+ ```
166
+
167
+ 追記終わり