質問編集履歴

3

タイトル編集

2019/07/11 13:23

投稿

hermes
hermes

スコア13

test CHANGED
@@ -1 +1 @@
1
- Segmentationfault11の解決策が不明
1
+ C言語 Segmentationfault11の解決策が不明
test CHANGED
File without changes

2

誤字がありました.申し訳ありません.

2019/07/11 13:23

投稿

hermes
hermes

スコア13

test CHANGED
File without changes
test CHANGED
@@ -34,208 +34,206 @@
34
34
 
35
35
  ```C
36
36
 
37
+ #include <stdio.h>
38
+
39
+ #include <stdlib.h>
40
+
41
+ #include <string.h>
42
+
43
+
44
+
45
+ #define N 512 // 1行の最大文字数(バイト数)
46
+
47
+ #define X 512
48
+
49
+ #define Colum 30
50
+
51
+
52
+
53
+ int main(void) {
54
+
55
+ FILE *fp; // FILE型構造体
56
+
57
+ char fname[] = "test2.csv";
58
+
59
+ char str[N];
60
+
61
+ char *box[X];
62
+
63
+ char *p;
64
+
65
+ int i = 0;
66
+
67
+ //bool bol = true;
68
+
69
+
70
+
71
+ //ファイルの読み込み判断
72
+
73
+ fp = fopen(fname, "r"); // ファイルを開く。失敗するとNULLを返す。
74
+
75
+ if(fp == NULL) {
76
+
77
+ printf("%s file not open!\n", fname);
78
+
79
+ return -1;
80
+
81
+ }
82
+
83
+
84
+
85
+ /*****************
86
+
87
+ * 1行目
88
+
89
+ */
90
+
91
+
92
+
93
+ //ファイルを1行ごとに呼び出し
94
+
95
+ fgets(str, N, fp);
96
+
97
+ //", " で分解
98
+
99
+ p = strtok(str, ",");
100
+
101
+
102
+
103
+ //puts(p);
104
+
105
+ //box[]に値を収納
106
+
107
+ box[i] = p;
108
+
109
+ i++;
110
+
111
+
112
+
113
+ while(p!=NULL){
114
+
115
+ p = strtok(NULL,",");
116
+
117
+
118
+
119
+ if(p!=NULL){
120
+
121
+
122
+
123
+ //puts(p);
124
+
125
+ box[i] = p;
126
+
127
+ //printf("%s\n", box[i]);
128
+
129
+ i++;
130
+
131
+ }
132
+
133
+ }
134
+
135
+
136
+
137
+ //printf("%s\n", str);
138
+
139
+
140
+
141
+ //printしてるのここ
142
+
143
+ printf("[%s] [%s] [%s]\n", box[0], box[1], box[2]);
144
+
145
+
146
+
147
+ /*******************
148
+
149
+ * 2行目
150
+
151
+ */
152
+
153
+
154
+
155
+ //ファイルを1行ごとに呼び出し
156
+
157
+ while (fgets(str, N, fp)!=NULL) {
158
+
159
+ i = 0;
160
+
161
+ //", " で分解
162
+
163
+ p = strtok(str, ",");
164
+
165
+
166
+
167
+ //puts(p);
168
+
169
+ //box[]に値を収納
170
+
171
+ box[i] = p;
172
+
173
+ i++;
174
+
175
+
176
+
177
+ while (p != NULL) {
178
+
179
+ p = strtok(NULL, ",");
180
+
181
+
182
+
183
+ if (p != NULL) {
184
+
185
+
186
+
187
+ //puts(p);
188
+
189
+ box[i] = p;
190
+
191
+ //printf("%s\n", box[i]);
192
+
193
+ i++;
194
+
195
+ }
196
+
197
+ }
198
+
199
+
200
+
201
+ //printしてるのここ
202
+
203
+ for (int j = 0; j < Colum; j++) {
204
+
205
+ printf("[%s] ", box[j]);
206
+
207
+ }
208
+
209
+ printf("\n");
210
+
211
+ }
212
+
213
+
214
+
215
+
216
+
217
+ /******************************************
218
+
219
+ * 最後の〆
220
+
221
+ */
222
+
223
+ fclose(fp); // ファイルを閉じる
224
+
225
+
226
+
227
+ printf("\n");
228
+
229
+
230
+
231
+ return 0;
232
+
233
+ }
234
+
37
235
  ```
38
236
 
39
- #include <stdio.h>
40
-
41
- #include <stdlib.h>
42
-
43
- #include <string.h>
44
-
45
-
46
-
47
- #define N 512 // 1行の最大文字数(バイト数)
48
-
49
- #define X 512
50
-
51
- #define Colum 30
52
-
53
-
54
-
55
- int main(void) {
56
-
57
- FILE *fp; // FILE型構造体
58
-
59
- char fname[] = "test2.csv";
60
-
61
- char str[N];
62
-
63
- char *box[X];
64
-
65
- char *p;
66
-
67
- int i = 0;
68
-
69
- //bool bol = true;
70
-
71
-
72
-
73
- //ファイルの読み込み判断
74
-
75
- fp = fopen(fname, "r"); // ファイルを開く。失敗するとNULLを返す。
76
-
77
- if(fp == NULL) {
78
-
79
- printf("%s file not open!\n", fname);
80
-
81
- return -1;
82
-
83
- }
84
-
85
-
86
-
87
- /*****************
88
-
89
- * 1行目
90
-
91
- */
92
-
93
-
94
-
95
- //ファイルを1行ごとに呼び出し
96
-
97
- fgets(str, N, fp);
98
-
99
- //", " で分解
100
-
101
- p = strtok(str, ",");
102
-
103
-
104
-
105
- //puts(p);
106
-
107
- //box[]に値を収納
108
-
109
- box[i] = p;
110
-
111
- i++;
112
-
113
-
114
-
115
- while(p!=NULL){
116
-
117
- p = strtok(NULL,",");
118
-
119
-
120
-
121
- if(p!=NULL){
122
-
123
-
124
-
125
- //puts(p);
126
-
127
- box[i] = p;
128
-
129
- //printf("%s\n", box[i]);
130
-
131
- i++;
132
-
133
- }
134
-
135
- }
136
-
137
-
138
-
139
- //printf("%s\n", str);
140
-
141
-
142
-
143
- //printしてるのここ
144
-
145
- printf("[%s] [%s] [%s]\n", box[0], box[1], box[2]);
146
-
147
-
148
-
149
- /*******************
150
-
151
- * 2行目
152
-
153
- */
154
-
155
-
156
-
157
- //ファイルを1行ごとに呼び出し
158
-
159
- while (fgets(str, N, fp)!=NULL) {
160
-
161
- i = 0;
162
-
163
- //", " で分解
164
-
165
- p = strtok(str, ",");
166
-
167
-
168
-
169
- //puts(p);
170
-
171
- //box[]に値を収納
172
-
173
- box[i] = p;
174
-
175
- i++;
176
-
177
-
178
-
179
- while (p != NULL) {
180
-
181
- p = strtok(NULL, ",");
182
-
183
-
184
-
185
- if (p != NULL) {
186
-
187
-
188
-
189
- //puts(p);
190
-
191
- box[i] = p;
192
-
193
- //printf("%s\n", box[i]);
194
-
195
- i++;
196
-
197
- }
198
-
199
- }
200
-
201
-
202
-
203
- //printしてるのここ
204
-
205
- for (int j = 0; j < Colum; j++) {
206
-
207
- printf("[%s] ", box[j]);
208
-
209
- }
210
-
211
- printf("\n");
212
-
213
- }
214
-
215
-
216
-
217
-
218
-
219
- /******************************************
220
-
221
- * 最後の〆
222
-
223
- */
224
-
225
- fclose(fp); // ファイルを閉じる
226
-
227
-
228
-
229
- printf("\n");
230
-
231
-
232
-
233
- return 0;
234
-
235
- }
236
-
237
- ```
238
-
239
237
 
240
238
 
241
239
  ### 試したこと

1

誤字がありました.申し訳ありません.

2019/07/11 13:13

投稿

hermes
hermes

スコア13

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  Segmentation fault: 11
24
24
 
25
-
25
+ ```
26
26
 
27
27
 
28
28