質問編集履歴
2
エラー内容の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,12 +3,6 @@
|
|
3
3
|
$ gcc -o bcopy1 bcopy1.c -lpdcursesw
|
4
4
|
|
5
5
|
。。。@naka ~/besten
|
6
|
-
|
7
|
-
$ bcopy1
|
8
|
-
|
9
|
-
パラメータが不正です。
|
10
|
-
|
11
|
-
bcopy コピー元ファイル名 コピー先ファイル名
|
12
6
|
|
13
7
|
|
14
8
|
|
1
全体的にコードの見直しをしました。こんぱいるできるのですが、
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,38 @@
|
|
1
|
+
。。。@naka ~/besten
|
2
|
+
|
3
|
+
$ gcc -o bcopy1 bcopy1.c -lpdcursesw
|
4
|
+
|
5
|
+
。。。@naka ~/besten
|
6
|
+
|
7
|
+
$ bcopy1
|
8
|
+
|
9
|
+
パラメータが不正です。
|
10
|
+
|
11
|
+
bcopy コピー元ファイル名 コピー先ファイル名
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
。。。@naka ~/besten
|
16
|
+
|
17
|
+
$ bcopy1 dtfile dtfile3
|
18
|
+
|
19
|
+
ファイルdtfileがオープンできません。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
。。。@naka ~/besten
|
24
|
+
|
25
|
+
$
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
1
31
|
データ"LACKNUM.DAT"をデータ"LACKNUM3.DAT"にコピー
|
2
32
|
|
3
|
-
し、表示するプログラムですが、実行するとエラーがでてうまくいきません。どの当たりが悪いのかおしえてください
|
33
|
+
し、表示するプログラムですが、実行するとコンパイルはとおります。しかし上のようなエラーがでてうまくいきません。どの当たりが悪いのかおしえてください
|
34
|
+
|
35
|
+
|
4
36
|
|
5
37
|
コード
|
6
38
|
|
@@ -40,7 +72,7 @@
|
|
40
72
|
|
41
73
|
char dtfile[] = "LACKNUM.DAT"; // ファイル名
|
42
74
|
|
43
|
-
char dtfil] = "LACKNUM3.DAT"; // 4, LACKNUM.DATに保存されているデータを記録するのに
|
75
|
+
char dtfile3[] = "LACKNUM3.DAT"; // 4, LACKNUM.DATに保存されているデータを記録するのに
|
44
76
|
|
45
77
|
// 十分な数の配列"LACKNUM3.DAT" を確保して下さい。
|
46
78
|
|
@@ -58,11 +90,11 @@
|
|
58
90
|
|
59
91
|
|
60
92
|
|
61
|
-
int main(v
|
93
|
+
int main(int argc,char* argv[])
|
62
94
|
|
63
95
|
{
|
64
96
|
|
65
|
-
int n,num;
|
97
|
+
int i,n,num;
|
66
98
|
|
67
99
|
FILE *fp, *fp3; // *fpと *fp3はファイルポインタ
|
68
100
|
|
@@ -74,25 +106,25 @@
|
|
74
106
|
|
75
107
|
|
76
108
|
|
77
|
-
if (
|
109
|
+
if (argc != 3) {
|
78
110
|
|
79
|
-
fprintf(stderr, "
|
111
|
+
fprintf(stderr, "パラメータが不正です。\n");
|
80
112
|
|
81
113
|
fprintf(stderr, "bcopy コピー元ファイル名 コピー先ファイル名\n");
|
82
114
|
|
83
115
|
} else {
|
84
116
|
|
85
|
-
if ((fp = fopen(
|
117
|
+
if ((fp = fopen(*++argv, "rb")) == NULL) {
|
86
118
|
|
87
119
|
/* *++argv=const char *filenameも ,"rb"=const char *modeもポインタ */
|
88
120
|
|
89
|
-
fprintf(stderr, "ファイル%sがオープンできません。\n",
|
121
|
+
fprintf(stderr, "ファイル%sがオープンできません。\n", *argv);
|
90
122
|
|
91
123
|
return (1);
|
92
124
|
|
93
|
-
} else if ((fp3 =
|
125
|
+
} else if ((fp3 =fopen( *++argv, "wb")) == NULL) {
|
94
126
|
|
95
|
-
fprintf(stderr, "ファイル%sがオープンできません。\n",
|
127
|
+
fprintf(stderr, "ファイル%sがオープンできません。\n", *argv);
|
96
128
|
|
97
129
|
fclose(fp);
|
98
130
|
|
@@ -100,21 +132,15 @@
|
|
100
132
|
|
101
133
|
} else {
|
102
134
|
|
103
|
-
while ((n = fread(buf,
|
135
|
+
while ( (n = fread(buf, BSIZE, 1, fp)) > 0){
|
104
136
|
|
105
137
|
/* ファイルポインタfpからsizeof(struct tm) バイトのデータを
|
106
138
|
|
107
139
|
1 個読み込み、読み込みデータ格納先のポインタbufに格納する */
|
108
140
|
|
109
|
-
fwrite(buf,
|
141
|
+
fwrite(buf,n, 1, fp3);
|
110
142
|
|
111
|
-
|
112
|
-
|
113
|
-
|
143
|
+
|
114
|
-
|
115
|
-
time_besten besten;
|
116
|
-
|
117
|
-
|
118
144
|
|
119
145
|
while((i = fread(&besten,sizeof(struct tm),1, fp3)) > 0 ){
|
120
146
|
|
@@ -132,11 +158,7 @@
|
|
132
158
|
|
133
159
|
}
|
134
160
|
|
135
|
-
|
161
|
+
|
136
|
-
|
137
|
-
// 一瞬で画面が消えてしまう場合には、
|
138
|
-
|
139
|
-
// 以下の文を入力します。
|
140
162
|
|
141
163
|
fflush(stdin);
|
142
164
|
|
@@ -144,11 +166,13 @@
|
|
144
166
|
|
145
167
|
|
146
168
|
|
169
|
+
fclose(fp);
|
170
|
+
|
171
|
+
fclose(fp3);
|
172
|
+
|
147
173
|
}
|
148
174
|
|
149
|
-
|
175
|
+
|
150
|
-
|
151
|
-
fclose(fp3);
|
152
176
|
|
153
177
|
}
|
154
178
|
|
@@ -160,26 +184,10 @@
|
|
160
184
|
|
161
185
|
|
162
186
|
|
163
|
-
/*結果
|
164
187
|
|
165
188
|
|
166
189
|
|
167
|
-
...@naka ~/besten
|
168
|
-
|
169
|
-
$ gcc -o bcopy1 bcopy1.c -lpdcursesw
|
170
|
-
|
171
|
-
/mingw/lib/libmingw32.a(main.o):main.c:(.text+0x104): unde
|
172
|
-
|
173
|
-
fined reference to `WinMain@16'
|
174
|
-
|
175
|
-
collect2: ld returned 1 exit status
|
176
190
|
|
177
191
|
|
178
192
|
|
179
|
-
....@naka ~/besten
|
180
|
-
|
181
|
-
$
|
182
|
-
|
183
|
-
*/
|
184
|
-
|
185
193
|
```
|