質問編集履歴
6
文法修正、その他加筆しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -182,9 +182,13 @@
|
|
182
182
|
|
183
183
|
printf("\a制御ファイルをオープンできません。\n");
|
184
184
|
|
185
|
-
else
|
185
|
+
else{
|
186
|
+
|
186
|
-
|
187
|
+
fscanf(con_fp, "%s", con_str);
|
188
|
+
|
189
|
+
fclose(con_fp);
|
190
|
+
|
187
|
-
|
191
|
+
}
|
188
192
|
|
189
193
|
|
190
194
|
|
@@ -196,11 +200,7 @@
|
|
196
200
|
|
197
201
|
|
198
202
|
|
199
|
-
fclose(con_fp);
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
tim_fp = fopen(
|
203
|
+
tim_fp = fopen(TIM_NAME, "r");
|
204
204
|
|
205
205
|
|
206
206
|
|
@@ -210,9 +210,11 @@
|
|
210
210
|
|
211
211
|
else{
|
212
212
|
|
213
|
-
|
213
|
+
fscanf(tim_fp, "%s", tim_str);
|
214
|
+
|
214
|
-
|
215
|
+
while (tim_str){
|
216
|
+
|
215
|
-
str[int_c[i]] =
|
217
|
+
str[int_c[i]] = tim_str;
|
216
218
|
|
217
219
|
i++;
|
218
220
|
|
@@ -244,10 +246,10 @@
|
|
244
246
|
|
245
247
|
else{
|
246
248
|
|
247
|
-
printf("\a制御ファイルをオープンしました。\n");
|
248
|
-
|
249
249
|
fprintf(con_fp, GET_TIME); // 5・・・制御ファイルにGET_TIMEを書き込む
|
250
250
|
|
251
|
+
fclose(con_fp);
|
252
|
+
|
251
253
|
}
|
252
254
|
|
253
255
|
|
@@ -268,6 +270,6 @@
|
|
268
270
|
|
269
271
|
### 試したこと
|
270
272
|
|
271
|
-
間違っているかもしれませんがプログラムは
|
273
|
+
間違っているかもしれませんがプログラムは一応最後まで書けました。
|
272
|
-
|
274
|
+
|
273
|
-
コンパイルエラーは起きませんが「制御ファイルがオープンできません」と連続で表示されてしまいます。
|
275
|
+
コンパイルエラーは起きませんが「制御ファイルがオープンできません」と連続で表示されてしまいます。3と4のところがうまくいっていない原因なのかなと個人的に思っています。
|
5
文法修正、その他加筆しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,6 +54,28 @@
|
|
54
54
|
|
55
55
|
※すいません!送信プログラムの処理は勝手にプログラムのほうでやってくれるみたいなので作るのは課題プログラムのほうの処理だけみたいです。
|
56
56
|
|
57
|
+
処理の順序ごとの画面も載せます
|
58
|
+
|
59
|
+
「制御ファイル」に「GET_TIME」
|
60
|
+
|
61
|
+
![課題プログラム1](a5370f0461d598b7f11dd23b3a65c38d.png)
|
62
|
+
|
63
|
+
送信プログラムの中身
|
64
|
+
|
65
|
+
![イメージ説明](ca0d08da4992257a1fa84e46e057012c.png)
|
66
|
+
|
67
|
+
送信プログラムが「時間ファイル」に自動で日時を書き込む
|
68
|
+
|
69
|
+
![イメージ説明](8eaffa13e5005f29421277d6e9118187.png)
|
70
|
+
|
71
|
+
「制御ファイル」に「SET_TIME」が書かれる
|
72
|
+
|
73
|
+
![イメージ説明](1cfb906161b6083e225b4672513b82cf.png)
|
74
|
+
|
75
|
+
この後課題プログラム3に移る
|
76
|
+
|
77
|
+
|
78
|
+
|
57
79
|
### 表示例
|
58
80
|
|
59
81
|
2020年07月27日 17時25分01秒
|
4
ソースコードできる限りやって更新しました
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
C言語:ファイルにて日時を取得するプログラムを作成したい
|
1
|
+
C言語:ファイルにて日時を取得するプログラムを作成したい
|
test
CHANGED
@@ -118,27 +118,29 @@
|
|
118
118
|
|
119
119
|
/*----- ここより下に解答を記述してください -----*/
|
120
120
|
|
121
|
+
|
122
|
+
|
121
123
|
int ch;
|
122
124
|
|
125
|
+
|
126
|
+
|
123
|
-
|
127
|
+
con_fp = fopen(CON_NAME, "w");
|
124
|
-
|
125
|
-
|
126
|
-
|
128
|
+
|
129
|
+
|
130
|
+
|
127
|
-
if (
|
131
|
+
if (con_fp == NULL) // 制御ファイルオープン
|
128
132
|
|
129
133
|
printf("\a制御ファイルをオープンできません。\n");
|
130
134
|
|
131
|
-
else if ((tim_fp = fopen(TIM_NAME, "w+")) == NULL) // 時間ファイルオープン
|
132
|
-
|
133
|
-
printf("\a時間ファイルをオープンできません。\n");
|
134
|
-
|
135
|
-
else
|
135
|
+
else{
|
136
|
-
|
137
|
-
|
136
|
+
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
fprintf(con_fp, GET_TIME);
|
137
|
+
fprintf(con_fp, GET_TIME); // 1・・・制御ファイルにGET_TIMEを書き込む
|
138
|
+
|
139
|
+
fclose(con_fp);
|
140
|
+
|
141
|
+
}
|
142
|
+
|
143
|
+
|
142
144
|
|
143
145
|
/*----- ここより上に解答を記述してください -----*/
|
144
146
|
|
@@ -148,44 +150,88 @@
|
|
148
150
|
|
149
151
|
/*----- ここより下に解答を記述してください -----*/
|
150
152
|
|
153
|
+
|
154
|
+
|
155
|
+
con_fp = fopen(CON_NAME, "r");
|
156
|
+
|
157
|
+
|
158
|
+
|
151
|
-
f
|
159
|
+
if (con_fp == NULL) // 2・・・読み込み部分
|
160
|
+
|
161
|
+
printf("\a制御ファイルをオープンできません。\n");
|
162
|
+
|
163
|
+
else
|
164
|
+
|
165
|
+
;
|
166
|
+
|
167
|
+
|
152
168
|
|
153
169
|
/*----- ここより上に解答を記述してください -----*/
|
154
170
|
|
171
|
+
if(con_fp != NULL && strcmp(con_str, SET_TIME) == 0){ // 2・・・SETTIMEが書かれるまで待つ部分
|
172
|
+
|
173
|
+
/*----- ここより下に解答を記述してください -----*/
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
fclose(con_fp);
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
tim_fp = fopen(CON_NAME, "r");
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
if (tim_fp == NULL) // 3・・・時間ファイルから日時を読み込む
|
186
|
+
|
187
|
+
printf("\a時間ファイルをオープンできません。\n");
|
188
|
+
|
189
|
+
else{
|
190
|
+
|
191
|
+
while ((ch = fgetc(tim_fp)) != EOF){ // 4・・・画面に日時を表示する
|
192
|
+
|
193
|
+
str[int_c[i]] = ch;
|
194
|
+
|
195
|
+
i++;
|
196
|
+
|
197
|
+
}
|
198
|
+
|
199
|
+
fclose(tim_fp);
|
200
|
+
|
201
|
+
printf("%s\n", str);
|
202
|
+
|
203
|
+
}
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
/*----- ここより上に解答を記述してください -----*/
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
//------------------------------------------------
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
/*----- ここより下に解答を記述してください -----*/
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
if ((con_fp = fopen(CON_NAME, "w")) == NULL)
|
220
|
+
|
221
|
+
printf("\a制御ファイルをオープンできません。\n");
|
222
|
+
|
223
|
+
else{
|
224
|
+
|
225
|
+
printf("\a制御ファイルをオープンしました。\n");
|
226
|
+
|
227
|
+
fprintf(con_fp, GET_TIME); // 5・・・制御ファイルにGET_TIMEを書き込む
|
228
|
+
|
229
|
+
}
|
230
|
+
|
155
231
|
|
156
232
|
|
157
|
-
if(con_fp != NULL && strcmp(con_str, SET_TIME) == 0){ // 2・・・SETTIMEが書かれるまで待つ部分
|
158
|
-
|
159
|
-
/*----- ここより下に解答を記述してください -----*/
|
160
|
-
|
161
|
-
fscanf(tim_fp, "%d", fp); // 3・・・時間ファイルから日時を読み込む
|
162
|
-
|
163
233
|
/*----- ここより上に解答を記述してください -----*/
|
164
234
|
|
165
|
-
|
166
|
-
|
167
|
-
//------------------------------------------------
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
/*----- ここより下に解答を記述してください -----*/
|
172
|
-
|
173
|
-
while ((ch = fgetc(tim_fp)) != EOF){ // 4・・・画面に日時を表示する
|
174
|
-
|
175
|
-
str[int_c[i]] = ch;
|
176
|
-
|
177
|
-
i++;
|
178
|
-
|
179
|
-
}
|
180
|
-
|
181
|
-
printf("%c\n", str);
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
fprintf(con_fp, "GET_TIME\n"); // 5・・・制御ファイルにGET_TIMEを書き込む
|
186
|
-
|
187
|
-
/*----- ここより上に解答を記述してください -----*/
|
188
|
-
|
189
235
|
}
|
190
236
|
|
191
237
|
}
|
@@ -201,3 +247,5 @@
|
|
201
247
|
### 試したこと
|
202
248
|
|
203
249
|
間違っているかもしれませんがプログラムは途中まで書けました。
|
250
|
+
|
251
|
+
コンパイルエラーは起きませんが「制御ファイルがオープンできません」と連続で表示されてしまいます。
|
3
ソースコードできる限りやって更新しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -110,7 +110,7 @@
|
|
110
110
|
|
111
111
|
static char str[] = "9999年99月99日 99時99分99秒";
|
112
112
|
|
113
|
-
int int_c[] = { 0, 1, 2, 3, 6, 7, 10, 11, 16, 17, 20, 21, 24, 25};
|
113
|
+
int int_c[] = { 0, 1, 2, 3, 6, 7, 10, 11, 16, 17, 20, 21, 24, 25};
|
114
114
|
|
115
115
|
int i;
|
116
116
|
|
@@ -118,17 +118,27 @@
|
|
118
118
|
|
119
119
|
/*----- ここより下に解答を記述してください -----*/
|
120
120
|
|
121
|
+
int ch;
|
122
|
+
|
123
|
+
int fp;
|
124
|
+
|
125
|
+
|
126
|
+
|
121
|
-
if ((con_fp = fopen(CON_NAME, "w")) == NULL) /
|
127
|
+
if ((con_fp = fopen(CON_NAME, "w+")) == NULL) // 制御ファイルオープン
|
122
128
|
|
123
129
|
printf("\a制御ファイルをオープンできません。\n");
|
124
130
|
|
125
|
-
else if ((tim_fp = fopen(TIM_NAME, "w")) == NULL) /
|
131
|
+
else if ((tim_fp = fopen(TIM_NAME, "w+")) == NULL) // 時間ファイルオープン
|
126
132
|
|
127
133
|
printf("\a時間ファイルをオープンできません。\n");
|
128
134
|
|
129
135
|
else
|
130
136
|
|
131
|
-
printf("制御
|
137
|
+
printf("\a制御と時間ファイルをオープンできました。\n");
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
fprintf(con_fp, GET_TIME); // 1・・・制御ファイルにGET_TIMEを書き込む
|
132
142
|
|
133
143
|
/*----- ここより上に解答を記述してください -----*/
|
134
144
|
|
@@ -138,56 +148,46 @@
|
|
138
148
|
|
139
149
|
/*----- ここより下に解答を記述してください -----*/
|
140
150
|
|
141
|
-
current = time(NULL); /* 現在の暦時刻 */
|
142
|
-
|
143
|
-
timer = localtime(¤t); /* 要素別の時刻 */
|
144
|
-
|
145
|
-
if(timer->tm_sec != tm_sec){
|
146
|
-
|
147
|
-
sprintf(str + 0,"%04d%02d%02d%02d%02d%02d", /* 年,月,日,時,分,秒 */
|
148
|
-
|
149
|
-
timer->tm_year + 1900, timer->tm_mon + 1, timer->tm_mday,
|
150
|
-
|
151
|
-
timer->tm_hour, timer->tm_min, timer->tm_sec);
|
152
|
-
|
153
|
-
|
151
|
+
fscanf(con_fp, "%d"); // 2・・・読み込む部分
|
152
|
+
|
153
|
+
/*----- ここより上に解答を記述してください -----*/
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
if(con_fp != NULL && strcmp(con_str, SET_TIME) == 0){ // 2・・・SETTIMEが書かれるまで待つ部分
|
158
|
+
|
159
|
+
/*----- ここより下に解答を記述してください -----*/
|
160
|
+
|
161
|
+
fscanf(tim_fp, "%d", fp); // 3・・・時間ファイルから日時を読み込む
|
162
|
+
|
163
|
+
/*----- ここより上に解答を記述してください -----*/
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
//------------------------------------------------
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
/*----- ここより下に解答を記述してください -----*/
|
172
|
+
|
173
|
+
while ((ch = fgetc(tim_fp)) != EOF){ // 4・・・画面に日時を表示する
|
174
|
+
|
175
|
+
str[int_c[i]] = ch;
|
176
|
+
|
177
|
+
i++;
|
178
|
+
|
179
|
+
}
|
180
|
+
|
181
|
+
printf("%c\n", str);
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
fprintf(con_fp, "GET_TIME\n"); // 5・・・制御ファイルにGET_TIMEを書き込む
|
186
|
+
|
187
|
+
/*----- ここより上に解答を記述してください -----*/
|
154
188
|
|
155
189
|
}
|
156
190
|
|
157
|
-
/*----- ここより上に解答を記述してください -----*/
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
if(con_fp != NULL && strcmp(con_str, SET_TIME) == 0){
|
162
|
-
|
163
|
-
/*----- ここより下に解答を記述してください -----*/
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
/*----- ここより上に解答を記述してください -----*/
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
//------------------------------------------------
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
/*----- ここより下に解答を記述してください -----*/
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
/*----- ここより上に解答を記述してください -----*/
|
188
|
-
|
189
|
-
}
|
190
|
-
|
191
191
|
}
|
192
192
|
|
193
193
|
|
@@ -201,5 +201,3 @@
|
|
201
201
|
### 試したこと
|
202
202
|
|
203
203
|
間違っているかもしれませんがプログラムは途中まで書けました。
|
204
|
-
|
205
|
-
ファイルの展開部分と日時の取得部分です。
|
2
送信プログラムの事で間違っている部分がありました
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
C言語:ファイルにて日時を取得するプログラムを作成したい
|
1
|
+
C言語:ファイルにて日時を取得するプログラムを作成したい(文を少し更新しました)
|
test
CHANGED
@@ -118,14 +118,6 @@
|
|
118
118
|
|
119
119
|
/*----- ここより下に解答を記述してください -----*/
|
120
120
|
|
121
|
-
time_t current;
|
122
|
-
|
123
|
-
struct tm *timer;
|
124
|
-
|
125
|
-
int tm_sec = 0;
|
126
|
-
|
127
|
-
|
128
|
-
|
129
121
|
if ((con_fp = fopen(CON_NAME, "w")) == NULL) /* 制御ファイルオープン */
|
130
122
|
|
131
123
|
printf("\a制御ファイルをオープンできません。\n");
|
1
送信プログラムの事で間違っている部分がありました
test
CHANGED
File without changes
|
test
CHANGED
@@ -52,6 +52,8 @@
|
|
52
52
|
|
53
53
|
ap1401.exeの処理1と2の間にap1401_SEND.exeの処理が入ります。
|
54
54
|
|
55
|
+
※すいません!送信プログラムの処理は勝手にプログラムのほうでやってくれるみたいなので作るのは課題プログラムのほうの処理だけみたいです。
|
56
|
+
|
55
57
|
### 表示例
|
56
58
|
|
57
59
|
2020年07月27日 17時25分01秒
|