質問編集履歴
7
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,17 +6,4 @@
|
|
6
6
|
プログラムを終了します
|
7
7
|
%
|
8
8
|
|
9
|
-
上のように2回目以降0件見つかりましたと検索できなくなります。
|
9
|
+
上のように2回目以降0件見つかりましたと検索できなくなります。
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
```txt
|
14
|
-
3
|
15
|
-
1000011 東京都千代田区内幸町 TOKYOTOCHIYODAKUUCHISAIWAICHO
|
16
|
-
5730171 大阪府枚方市北山 OSAKAFUHIRAKATASHIKITAYAMA
|
17
|
-
0040021 北海道札幌市厚別区青葉町 HOKKAIDOSAPPOROSHIATSUBETSUKUAOBACHO
|
18
|
-
```
|
19
|
-
|
20
|
-
###開発環境
|
21
|
-
bush :シェルスクリプト
|
22
|
-
sakura editer :編集
|
6
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,17 +2,6 @@
|
|
2
2
|
txtの情報を連結リストに格納して、郵便番号を入力するとその郵便番号と住所と何件表示されたかを出力するプログラムを作っています。
|
3
3
|
実行すると
|
4
4
|
|
5
|
-
% ./main.exe test.txt
|
6
|
-
1000011 東京都千代田区内幸町
|
7
|
-
5730171 大阪府枚方市北山
|
8
|
-
0040021 北海道札幌市厚別区青葉町
|
9
|
-
郵便番号を入力してください:5730171
|
10
|
-
5730171 大阪府枚方市北山
|
11
|
-
1件見つかりました
|
12
|
-
郵便番号を入力してください:1000011
|
13
|
-
0件見つかりました
|
14
|
-
郵便番号を入力してください:9999999
|
15
|
-
0件見つかりました
|
16
5
|
郵便番号を入力してください:0
|
17
6
|
プログラムを終了します
|
18
7
|
%
|
5
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -19,174 +19,8 @@
|
|
19
19
|
|
20
20
|
上のように2回目以降0件見つかりましたと検索できなくなります。
|
21
21
|
|
22
|
-
説明不足な箇所があれば教えてください。説明します。
|
23
22
|
|
24
23
|
|
25
|
-
```C
|
26
|
-
#include <stdio.h>
|
27
|
-
#include <stdlib.h>
|
28
|
-
#include <string.h>
|
29
|
-
#include "library.h"
|
30
|
-
|
31
|
-
struct address {
|
32
|
-
char no[8]; /*郵便番号*/
|
33
|
-
char addr[205]; /*住所*/
|
34
|
-
char yomi[106]; /*読みがな*/
|
35
|
-
struct address *next;/*次のリストのアドレス*/
|
36
|
-
};
|
37
|
-
|
38
|
-
struct address gFront = {{0}, {0}, {0}, NULL}; /*先頭の連結リストを指すポインタの初期化*/
|
39
|
-
|
40
|
-
void printList(void){ /*ちゃんと格納されているか確認するため*/
|
41
|
-
struct address *p;
|
42
|
-
|
43
|
-
printf("LIST[ ");
|
44
|
-
p = gFront.next;
|
45
|
-
while(p != NULL){
|
46
|
-
printf("%s, %s, %s, ",p->no, p->addr, p->yomi);
|
47
|
-
p = p->next;
|
48
|
-
}
|
49
|
-
printf("]\n");
|
50
|
-
}
|
51
|
-
|
52
|
-
void insert(struct address *pre, struct address *new){ /*後ろに連結させる*/
|
53
|
-
new->next = NULL;
|
54
|
-
pre->next = new;
|
55
|
-
}
|
56
|
-
|
57
|
-
void print_address(struct address *p){ /*郵便番号と住所を表示*/
|
58
|
-
printf("%s %s\n",p->no, p->addr);
|
59
|
-
}
|
60
|
-
|
61
|
-
int main(int argc, char *argv[]){
|
62
|
-
char n[124270];
|
63
|
-
char pos[8];
|
64
|
-
char a[8], b[205], c[106];
|
65
|
-
struct address *p;
|
66
|
-
struct address *tail;
|
67
|
-
int N, i, flag=0;
|
68
|
-
|
69
|
-
|
70
|
-
if (argc != 2){
|
71
|
-
fprintf(stderr, "プログラム引数を 1 つ指定してください\n");
|
72
|
-
exit(1);
|
73
|
-
}
|
74
|
-
|
75
|
-
/*=======txtの情報を連結リストへ========*/
|
76
|
-
|
77
|
-
infile_open(argv[1]); /*プログラム引数で呼び出されたtxtファイルを読む準備*/
|
78
|
-
|
79
|
-
infile_scanf("%s", n); /*=scanf*/
|
80
|
-
N = atoi(n);
|
81
|
-
tail = &gFront; /*初期化:連結リストの末尾が先頭を指すポインタのアドレスを示している*/
|
82
|
-
|
83
|
-
for(i = 0; i < N; i++){
|
84
|
-
infile_scanf("%s", a); /*addressの3メンバをスキャンし、*/
|
85
|
-
infile_scanf("%s", b);
|
86
|
-
infile_scanf("%s", c);
|
87
|
-
|
88
|
-
p = malloc(sizeof(struct address));
|
89
|
-
if (p == NULL){
|
90
|
-
fprintf(stderr, "エラー: malloc失敗\n");
|
91
|
-
exit(1);
|
92
|
-
}
|
93
|
-
|
94
|
-
strcpy(p->no, a); /*pが指すリストへ格納する*/
|
95
|
-
strcpy(p->addr, b);
|
96
|
-
strcpy(p->yomi, c);
|
97
|
-
|
98
|
-
insert(tail, p); /*それを末尾に連結させる*/
|
99
|
-
tail = p;
|
100
|
-
print_address(p);
|
101
|
-
}
|
102
|
-
|
103
|
-
/*==========================郵便番号を捜査===============================*/
|
104
|
-
|
105
|
-
printf("郵便番号を入力してください:");
|
106
|
-
scanf("%s",pos);
|
107
|
-
p = gFront.next;
|
108
|
-
|
109
|
-
while(strcmp(pos,"0") != 0){
|
110
|
-
|
111
|
-
while(p != NULL){
|
112
|
-
if(strcmp(pos, p->no) == 0){
|
113
|
-
print_address(p);
|
114
|
-
flag++;
|
115
|
-
}
|
116
|
-
p = p->next;
|
117
|
-
}
|
118
|
-
|
119
|
-
printf("%d件見つかりました\n",flag);
|
120
|
-
|
121
|
-
flag = 0;
|
122
|
-
printf("郵便番号を入力してください:");
|
123
|
-
scanf("%s", pos);
|
124
|
-
|
125
|
-
}
|
126
|
-
infile_close();
|
127
|
-
printf("プログラムを終了します\n");
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
return 0;
|
132
|
-
}
|
133
|
-
```
|
134
|
-
|
135
|
-
```library
|
136
|
-
/* 引数に与えたファイル名のファイルを入力用として内部に開いておく. */
|
137
|
-
void infile_open(char *filename){
|
138
|
-
static int opennum = 0;
|
139
|
-
if (InputFileFp != NULL){
|
140
|
-
fprintf(stderr, "エラー: infile_open: 既にファイルを開いています.\n");
|
141
|
-
fprintf(stderr, " 2重に開くことはできません.\n");
|
142
|
-
exit(1);
|
143
|
-
}
|
144
|
-
|
145
|
-
if (opennum > 0){
|
146
|
-
fprintf(stderr, "エラー: infile_open: ファイルを開けるのは1回だけです.\n");
|
147
|
-
exit(1);
|
148
|
-
}
|
149
|
-
|
150
|
-
InputFileFp = fopen(filename, "r");
|
151
|
-
if (InputFileFp == NULL){
|
152
|
-
fprintf(stderr, "エラー: infile_open: '%s'を開けませんでした.\n", filename);
|
153
|
-
fprintf(stderr, " ファイルが無いかスペルミスしていませんか?\n");
|
154
|
-
exit(1);
|
155
|
-
}
|
156
|
-
opennum++;
|
157
|
-
}
|
158
|
-
|
159
|
-
|
160
|
-
/* 開いておいた入力ファイルからscanfする.戻り値はscanfと同じ. */
|
161
|
-
int infile_scanf(char *format, ...){
|
162
|
-
static int eof_read_cnt=0;
|
163
|
-
int ret;
|
164
|
-
va_list ap;
|
165
|
-
|
166
|
-
va_start(ap, format);
|
167
|
-
ret = vfscanf(InputFileFp, format, ap);
|
168
|
-
va_end(ap);
|
169
|
-
|
170
|
-
if (ret == EOF){
|
171
|
-
if (eof_read_cnt++ >= 2){
|
172
|
-
fprintf(stderr, "警告: infile_scanf: すでにファイルの終端に達していますが\n");
|
173
|
-
fprintf(stderr, " 複数回scanfしようとしています\n");
|
174
|
-
}
|
175
|
-
}
|
176
|
-
|
177
|
-
return ret;
|
178
|
-
}
|
179
|
-
|
180
|
-
|
181
|
-
/* 開いておいた入力ファイルを閉じる. */
|
182
|
-
void infile_close(void){
|
183
|
-
if (InputFileFp != NULL){
|
184
|
-
fclose(InputFileFp);
|
185
|
-
InputFileFp = NULL;
|
186
|
-
}
|
187
|
-
}
|
188
|
-
```
|
189
|
-
|
190
24
|
```txt
|
191
25
|
3
|
192
26
|
1000011 東京都千代田区内幸町 TOKYOTOCHIYODAKUUCHISAIWAICHO
|
4
flagの初期化修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,21 +6,21 @@
|
|
6
6
|
1000011 東京都千代田区内幸町
|
7
7
|
5730171 大阪府枚方市北山
|
8
8
|
0040021 北海道札幌市厚別区青葉町
|
9
|
+
郵便番号を入力してください:5730171
|
10
|
+
5730171 大阪府枚方市北山
|
11
|
+
1件見つかりました
|
12
|
+
郵便番号を入力してください:1000011
|
13
|
+
0件見つかりました
|
14
|
+
郵便番号を入力してください:9999999
|
15
|
+
0件見つかりました
|
9
|
-
郵便番号を入力してください:
|
16
|
+
郵便番号を入力してください:0
|
17
|
+
プログラムを終了します
|
18
|
+
%
|
10
19
|
|
11
|
-
まで
|
20
|
+
上のように2回目以降0件見つかりましたと検索できなくなります。
|
12
21
|
|
13
|
-
警告: infile_scanf: すでにファイルの終端に達していますが
|
14
|
-
複数回scanfしようとしています
|
15
|
-
警告: infile_scanf: すでにファイルの終端に達していますが
|
16
|
-
複数回scanfしようとしています
|
17
|
-
▒▒かりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました
|
18
|
-
|
19
|
-
のようなエラーがエンドレスで出てきてしまいます。
|
20
|
-
|
21
22
|
説明不足な箇所があれば教えてください。説明します。
|
22
23
|
|
23
|
-

|
24
24
|
|
25
25
|
```C
|
26
26
|
#include <stdio.h>
|
@@ -37,6 +37,18 @@
|
|
37
37
|
|
38
38
|
struct address gFront = {{0}, {0}, {0}, NULL}; /*先頭の連結リストを指すポインタの初期化*/
|
39
39
|
|
40
|
+
void printList(void){ /*ちゃんと格納されているか確認するため*/
|
41
|
+
struct address *p;
|
42
|
+
|
43
|
+
printf("LIST[ ");
|
44
|
+
p = gFront.next;
|
45
|
+
while(p != NULL){
|
46
|
+
printf("%s, %s, %s, ",p->no, p->addr, p->yomi);
|
47
|
+
p = p->next;
|
48
|
+
}
|
49
|
+
printf("]\n");
|
50
|
+
}
|
51
|
+
|
40
52
|
void insert(struct address *pre, struct address *new){ /*後ろに連結させる*/
|
41
53
|
new->next = NULL;
|
42
54
|
pre->next = new;
|
@@ -60,7 +72,7 @@
|
|
60
72
|
exit(1);
|
61
73
|
}
|
62
74
|
|
63
|
-
/*=======txtの情報を連結リストへ========
|
75
|
+
/*=======txtの情報を連結リストへ========*/
|
64
76
|
|
65
77
|
infile_open(argv[1]); /*プログラム引数で呼び出されたtxtファイルを読む準備*/
|
66
78
|
|
@@ -88,31 +100,34 @@
|
|
88
100
|
print_address(p);
|
89
101
|
}
|
90
102
|
|
91
|
-
/*========郵便番号を捜査============*/
|
103
|
+
/*==========================郵便番号を捜査===============================*/
|
92
104
|
|
93
105
|
printf("郵便番号を入力してください:");
|
94
106
|
scanf("%s",pos);
|
95
|
-
|
96
107
|
p = gFront.next;
|
97
108
|
|
98
|
-
while(strcmp(pos,"0") != 0){
|
109
|
+
while(strcmp(pos,"0") != 0){
|
99
110
|
|
100
|
-
while(p != NULL){
|
111
|
+
while(p != NULL){
|
101
|
-
if(strcmp(pos, p->no) == 0){
|
112
|
+
if(strcmp(pos, p->no) == 0){
|
102
113
|
print_address(p);
|
103
|
-
flag++;
|
114
|
+
flag++;
|
104
115
|
}
|
105
116
|
p = p->next;
|
106
117
|
}
|
107
118
|
|
108
|
-
printf("%d件見つかりました",flag);
|
119
|
+
printf("%d件見つかりました\n",flag);
|
109
120
|
|
121
|
+
flag = 0;
|
122
|
+
printf("郵便番号を入力してください:");
|
110
|
-
|
123
|
+
scanf("%s", pos);
|
111
124
|
|
112
125
|
}
|
113
126
|
infile_close();
|
114
|
-
printf("プログラムを終了します");
|
127
|
+
printf("プログラムを終了します\n");
|
128
|
+
|
115
129
|
|
130
|
+
|
116
131
|
return 0;
|
117
132
|
}
|
118
133
|
```
|
3
新しくつまずいたところを追加
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
連結リストで該当したものをprintしながら捜査をつづけたい
|
body
CHANGED
@@ -1,13 +1,23 @@
|
|
1
1
|
### 現状説明
|
2
|
-
txtの情報を連結リストに格納し
|
2
|
+
txtの情報を連結リストに格納して、郵便番号を入力するとその郵便番号と住所と何件表示されたかを出力するプログラムを作っています。
|
3
|
-
|
3
|
+
実行すると
|
4
4
|
|
5
5
|
% ./main.exe test.txt
|
6
|
+
1000011 東京都千代田区内幸町
|
7
|
+
5730171 大阪府枚方市北山
|
8
|
+
0040021 北海道札幌市厚別区青葉町
|
6
|
-
|
9
|
+
郵便番号を入力してください:
|
7
10
|
|
8
|
-
|
11
|
+
まではいいのですが1000011を入力すると
|
9
|
-
printfをちりばめてもセグメントエラーです。
|
10
12
|
|
13
|
+
警告: infile_scanf: すでにファイルの終端に達していますが
|
14
|
+
複数回scanfしようとしています
|
15
|
+
警告: infile_scanf: すでにファイルの終端に達していますが
|
16
|
+
複数回scanfしようとしています
|
17
|
+
▒▒かりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました0件見つかりました
|
18
|
+
|
19
|
+
のようなエラーがエンドレスで出てきてしまいます。
|
20
|
+
|
11
21
|
説明不足な箇所があれば教えてください。説明します。
|
12
22
|
|
13
23
|

|
@@ -16,7 +26,7 @@
|
|
16
26
|
#include <stdio.h>
|
17
27
|
#include <stdlib.h>
|
18
28
|
#include <string.h>
|
19
|
-
#include "
|
29
|
+
#include "library.h"
|
20
30
|
|
21
31
|
struct address {
|
22
32
|
char no[8]; /*郵便番号*/
|
@@ -27,18 +37,6 @@
|
|
27
37
|
|
28
38
|
struct address gFront = {{0}, {0}, {0}, NULL}; /*先頭の連結リストを指すポインタの初期化*/
|
29
39
|
|
30
|
-
void printList(void){ /*ちゃんと格納されているか確認するため*/
|
31
|
-
struct address *p;
|
32
|
-
|
33
|
-
printf("LIST[ ");
|
34
|
-
p = gFront.next;
|
35
|
-
while(p != NULL){
|
36
|
-
printf("%s, %s, %s, ",p->no, p->addr, p->yomi);
|
37
|
-
p = p->next;
|
38
|
-
}
|
39
|
-
printf("]\n");
|
40
|
-
}
|
41
|
-
|
42
40
|
void insert(struct address *pre, struct address *new){ /*後ろに連結させる*/
|
43
41
|
new->next = NULL;
|
44
42
|
pre->next = new;
|
@@ -49,11 +47,12 @@
|
|
49
47
|
}
|
50
48
|
|
51
49
|
int main(int argc, char *argv[]){
|
50
|
+
char n[124270];
|
52
|
-
char
|
51
|
+
char pos[8];
|
53
|
-
char
|
52
|
+
char a[8], b[205], c[106];
|
54
53
|
struct address *p;
|
55
54
|
struct address *tail;
|
56
|
-
int N, i;
|
55
|
+
int N, i, flag=0;
|
57
56
|
|
58
57
|
|
59
58
|
if (argc != 2){
|
@@ -61,7 +60,7 @@
|
|
61
60
|
exit(1);
|
62
61
|
}
|
63
62
|
|
64
|
-
/*=======txtの情報を連結リストへ========*/
|
63
|
+
/*=======txtの情報を連結リストへ========リストへの格納は動作確認済み*/
|
65
64
|
|
66
65
|
infile_open(argv[1]); /*プログラム引数で呼び出されたtxtファイルを読む準備*/
|
67
66
|
|
@@ -83,17 +82,96 @@
|
|
83
82
|
strcpy(p->no, a); /*pが指すリストへ格納する*/
|
84
83
|
strcpy(p->addr, b);
|
85
84
|
strcpy(p->yomi, c);
|
86
|
-
|
85
|
+
|
87
86
|
insert(tail, p); /*それを末尾に連結させる*/
|
88
87
|
tail = p;
|
89
|
-
|
88
|
+
print_address(p);
|
90
89
|
}
|
90
|
+
|
91
|
+
/*========郵便番号を捜査============*/
|
92
|
+
|
93
|
+
printf("郵便番号を入力してください:");
|
94
|
+
scanf("%s",pos);
|
95
|
+
|
96
|
+
p = gFront.next;
|
97
|
+
|
98
|
+
while(strcmp(pos,"0") != 0){ /*0が入力されるまで検索を続ける*/
|
99
|
+
|
91
|
-
|
100
|
+
while(p != NULL){ /*リストの最後まで*/
|
92
|
-
|
101
|
+
if(strcmp(pos, p->no) == 0){
|
102
|
+
print_address(p);
|
103
|
+
flag++; /該当するものがあったらflagを増やす/
|
104
|
+
}
|
105
|
+
p = p->next;
|
106
|
+
}
|
107
|
+
|
108
|
+
printf("%d件見つかりました",flag);
|
109
|
+
|
110
|
+
infile_scanf("%s", pos);
|
111
|
+
|
112
|
+
}
|
113
|
+
infile_close();
|
114
|
+
printf("プログラムを終了します");
|
115
|
+
|
93
116
|
return 0;
|
94
117
|
}
|
95
118
|
```
|
96
119
|
|
120
|
+
```library
|
121
|
+
/* 引数に与えたファイル名のファイルを入力用として内部に開いておく. */
|
122
|
+
void infile_open(char *filename){
|
123
|
+
static int opennum = 0;
|
124
|
+
if (InputFileFp != NULL){
|
125
|
+
fprintf(stderr, "エラー: infile_open: 既にファイルを開いています.\n");
|
126
|
+
fprintf(stderr, " 2重に開くことはできません.\n");
|
127
|
+
exit(1);
|
128
|
+
}
|
129
|
+
|
130
|
+
if (opennum > 0){
|
131
|
+
fprintf(stderr, "エラー: infile_open: ファイルを開けるのは1回だけです.\n");
|
132
|
+
exit(1);
|
133
|
+
}
|
134
|
+
|
135
|
+
InputFileFp = fopen(filename, "r");
|
136
|
+
if (InputFileFp == NULL){
|
137
|
+
fprintf(stderr, "エラー: infile_open: '%s'を開けませんでした.\n", filename);
|
138
|
+
fprintf(stderr, " ファイルが無いかスペルミスしていませんか?\n");
|
139
|
+
exit(1);
|
140
|
+
}
|
141
|
+
opennum++;
|
142
|
+
}
|
143
|
+
|
144
|
+
|
145
|
+
/* 開いておいた入力ファイルからscanfする.戻り値はscanfと同じ. */
|
146
|
+
int infile_scanf(char *format, ...){
|
147
|
+
static int eof_read_cnt=0;
|
148
|
+
int ret;
|
149
|
+
va_list ap;
|
150
|
+
|
151
|
+
va_start(ap, format);
|
152
|
+
ret = vfscanf(InputFileFp, format, ap);
|
153
|
+
va_end(ap);
|
154
|
+
|
155
|
+
if (ret == EOF){
|
156
|
+
if (eof_read_cnt++ >= 2){
|
157
|
+
fprintf(stderr, "警告: infile_scanf: すでにファイルの終端に達していますが\n");
|
158
|
+
fprintf(stderr, " 複数回scanfしようとしています\n");
|
159
|
+
}
|
160
|
+
}
|
161
|
+
|
162
|
+
return ret;
|
163
|
+
}
|
164
|
+
|
165
|
+
|
166
|
+
/* 開いておいた入力ファイルを閉じる. */
|
167
|
+
void infile_close(void){
|
168
|
+
if (InputFileFp != NULL){
|
169
|
+
fclose(InputFileFp);
|
170
|
+
InputFileFp = NULL;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
```
|
174
|
+
|
97
175
|
```txt
|
98
176
|
3
|
99
177
|
1000011 東京都千代田区内幸町 TOKYOTOCHIYODAKUUCHISAIWAICHO
|
2
イメージ図の挿入
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
説明不足な箇所があれば教えてください。説明します。
|
12
12
|
|
13
|
-
|
13
|
+

|
14
14
|
|
15
15
|
```C
|
16
16
|
#include <stdio.h>
|
1
修正依頼に対応,main内のchar型のa,b,c,nの初期化をNULLから0に
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
### 現状説明
|
2
2
|
txtの情報を連結リストに格納したいのですが以下のようにプログラムしました。
|
3
3
|
コンパイルは成功したのですが、実行するとセグメントエラーとなりました。
|
4
|
+
|
5
|
+
% ./main.exe test.txt
|
6
|
+
セグメントエラー
|
7
|
+
|
4
8
|
修正するヒントがないので詰まってます。
|
5
9
|
printfをちりばめてもセグメントエラーです。
|
6
10
|
|
@@ -9,11 +13,16 @@
|
|
9
13
|
自分ではこれでちゃんと動くと思うのですが....
|
10
14
|
|
11
15
|
```C
|
16
|
+
#include <stdio.h>
|
17
|
+
#include <stdlib.h>
|
18
|
+
#include <string.h>
|
19
|
+
#include "libraly.h" /*infile_open、infile_close、 infile_scanfはlibraly.hから提供されているもので間違ってはないです*/
|
20
|
+
|
12
21
|
struct address {
|
13
|
-
char no[8];
|
22
|
+
char no[8]; /*郵便番号*/
|
14
|
-
char addr[205];
|
23
|
+
char addr[205]; /*住所*/
|
15
|
-
char yomi[106];
|
24
|
+
char yomi[106]; /*読みがな*/
|
16
|
-
struct address *next;
|
25
|
+
struct address *next;/*次のリストのアドレス*/
|
17
26
|
};
|
18
27
|
|
19
28
|
struct address gFront = {{0}, {0}, {0}, NULL}; /*先頭の連結リストを指すポインタの初期化*/
|
@@ -39,12 +48,9 @@
|
|
39
48
|
printf("%s %s\n",p->no, p->addr);
|
40
49
|
}
|
41
50
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
51
|
int main(int argc, char *argv[]){
|
46
|
-
char *n =
|
52
|
+
char *n = 0;
|
47
|
-
char *a =
|
53
|
+
char *a = 0, *b = 0, *c = 0;
|
48
54
|
struct address *p;
|
49
55
|
struct address *tail;
|
50
56
|
int N, i;
|
@@ -82,6 +88,7 @@
|
|
82
88
|
tail = p;
|
83
89
|
printList();
|
84
90
|
}
|
91
|
+
infile_close(); /*参照したtxtファイルを閉じる*/
|
85
92
|
|
86
93
|
return 0;
|
87
94
|
}
|
@@ -92,4 +99,8 @@
|
|
92
99
|
1000011 東京都千代田区内幸町 TOKYOTOCHIYODAKUUCHISAIWAICHO
|
93
100
|
5730171 大阪府枚方市北山 OSAKAFUHIRAKATASHIKITAYAMA
|
94
101
|
0040021 北海道札幌市厚別区青葉町 HOKKAIDOSAPPOROSHIATSUBETSUKUAOBACHO
|
95
|
-
```
|
102
|
+
```
|
103
|
+
|
104
|
+
###開発環境
|
105
|
+
bush :シェルスクリプト
|
106
|
+
sakura editer :編集
|