質問編集履歴

2

コード変更と質問の変更

2017/12/24 01:50

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  data_tel.txtのような表示になるようにコードを直したいのですが、
4
4
 
5
- わかりません。と// こをコロンをはずして naka だけ表示い というところ
5
+ わかりません。data_tel2.txtの090-7777のまえの空白を詰めると正しく表示さたのですが、のままでdata_tel2.txtを表示する方法がありますか。あっ
6
6
 
7
7
  教えてください。
8
8
 
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- data_tel.txt
19
+ data_tel2.txt
20
20
 
21
21
  naka , 090-7777
22
22
 
@@ -60,23 +60,11 @@
60
60
 
61
61
  void data_show(); // データ表示
62
62
 
63
- void data_delete();
64
-
65
-
66
-
67
63
  int main()
68
64
 
69
65
  {
70
66
 
71
-
72
-
73
- data_delete();
74
-
75
-
76
-
77
- data_show();
67
+ data_show();
78
-
79
-
80
68
 
81
69
  }
82
70
 
@@ -128,83 +116,11 @@
128
116
 
129
117
 
130
118
 
131
- void data_delete() {
132
119
 
133
- static char buff[N];
134
-
135
- FILE *fp;
136
-
137
- int name_len;
138
-
139
- int i=0;
140
-
141
- val=0;
142
-
143
-
144
-
145
-
146
-
147
- if(!(fp = fopen("data_tel2.txt", "r"))){
148
-
149
- printf("ファイルを開くことができません\n");
150
-
151
- exit(1);
152
-
153
- }
154
-
155
- printf("削除する名前を検索します。検索する名前を入力して下さい。\n");
156
120
 
157
121
 
158
122
 
159
- scanf("%s",buff);
160
123
 
161
-
162
-
163
- while(fscanf(fp, "%s%s", names[val], tel[val])!=-1){
164
-
165
-
166
-
167
- if(strstr(names[val],buff)){
168
-
169
-
170
-
171
- printf("%-10s%5s\n",names[val],tel[val]);
172
-
173
- i=1;
174
-
175
-
176
-
177
- name_len = strlen( names[val]);
178
-
179
-
180
-
181
- printf( "name_len=%d\n" , name_len );
182
-
183
-
184
-
185
-
186
-
187
- //見つかると削除する(ここで削除したい)
188
-
189
- }
190
-
191
-
192
-
193
- }
194
-
195
- printf("削除された名前: %s\n", buff);
196
-
197
- if(i==0)
198
-
199
- printf("名前が見つかりません: %s\n", buff);
200
-
201
- fclose(fp);
202
-
203
-
204
-
205
-
206
-
207
- }
208
124
 
209
125
 
210
126
 

1

コードを修正

2017/12/24 01:49

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  data_tel.txtのような表示になるようにコードを直したいのですが、
4
4
 
5
+ わかりません。それと// ここをコロンをはずして naka だけ表示したい というところ
6
+
5
- わかりません。教えてください。
7
+ 教えてください。
6
8
 
7
9
  ```
8
10
 
@@ -12,6 +14,8 @@
12
14
 
13
15
  /*
14
16
 
17
+
18
+
15
19
  data_tel.txt
16
20
 
17
21
  naka , 090-7777
@@ -24,16 +28,22 @@
24
28
 
25
29
  yamada , 090-4325
26
30
 
27
- */
31
+
28
-
29
-
32
+
33
+
34
+
35
+
30
36
 
31
37
  #include<stdio.h>
32
38
 
39
+ #include<string.h> //for strcmp,strstr
40
+
33
41
  #include<stdlib.h> //for exit
34
42
 
35
43
 
36
44
 
45
+
46
+
37
47
  #define N 256
38
48
 
39
49
  #define MAX 100 // MAX100人
@@ -50,6 +60,8 @@
50
60
 
51
61
  void data_show(); // データ表示
52
62
 
63
+ void data_delete();
64
+
53
65
 
54
66
 
55
67
  int main()
@@ -58,7 +70,11 @@
58
70
 
59
71
 
60
72
 
73
+ data_delete();
74
+
75
+
76
+
61
- data_show();
77
+ data_show();
62
78
 
63
79
 
64
80
 
@@ -112,17 +128,109 @@
112
128
 
113
129
 
114
130
 
131
+ void data_delete() {
132
+
133
+ static char buff[N];
134
+
135
+ FILE *fp;
136
+
137
+ int name_len;
138
+
139
+ int i=0;
140
+
141
+ val=0;
142
+
143
+
144
+
145
+
146
+
147
+ if(!(fp = fopen("data_tel2.txt", "r"))){
148
+
149
+ printf("ファイルを開くことができません\n");
150
+
151
+ exit(1);
152
+
153
+ }
154
+
155
+ printf("削除する名前を検索します。検索する名前を入力して下さい。\n");
156
+
157
+
158
+
159
+ scanf("%s",buff);
160
+
161
+
162
+
163
+ while(fscanf(fp, "%s%s", names[val], tel[val])!=-1){
164
+
165
+
166
+
167
+ if(strstr(names[val],buff)){
168
+
169
+
170
+
171
+ printf("%-10s%5s\n",names[val],tel[val]);
172
+
173
+ i=1;
174
+
175
+
176
+
177
+ name_len = strlen( names[val]);
178
+
179
+
180
+
181
+ printf( "name_len=%d\n" , name_len );
182
+
183
+
184
+
185
+
186
+
187
+ //見つかると削除する(ここで削除したい)
188
+
189
+ }
190
+
191
+
192
+
193
+ }
194
+
195
+ printf("削除された名前: %s\n", buff);
196
+
197
+ if(i==0)
198
+
199
+ printf("名前が見つかりません: %s\n", buff);
200
+
201
+ fclose(fp);
202
+
203
+
204
+
205
+
206
+
207
+ }
208
+
209
+
210
+
115
211
  実行結果
116
212
 
117
213
  naka@naka ~/kadai
118
214
 
119
- $ gcc -o data_delete3 data_delete3.c -Wall
120
-
121
-
122
-
123
- naka@naka ~/kadai
215
+ naka@naka ~/kadai
216
+
124
-
217
+ $ gcc -o data_delete4 data_delete4.c -Wall
218
+
219
+
220
+
221
+ naka@naka ~/kadai
222
+
125
- $ data_delete3
223
+ $ data_delete4
224
+
225
+ 削除する名前を検索します。検索する名前を入力して下さい。
226
+
227
+ naka
228
+
229
+ naka , // ここをコロンをはずして naka だけ表示したい
230
+
231
+ name_len=4
232
+
233
+ 削除された名前: naka
126
234
 
127
235
 
128
236
 
@@ -164,4 +272,6 @@
164
272
 
165
273
 
166
274
 
275
+
276
+
167
277
  ```