質問編集履歴
2
エラー内容の変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
。。。@naka ~/besten
|
2
2
|
$ gcc -o bcopy1 bcopy1.c -lpdcursesw
|
3
3
|
。。。@naka ~/besten
|
4
|
-
$ bcopy1
|
5
|
-
パラメータが不正です。
|
6
|
-
bcopy コピー元ファイル名 コピー先ファイル名
|
7
4
|
|
8
5
|
。。。@naka ~/besten
|
9
6
|
$ bcopy1 dtfile dtfile3
|
1
全体的にコードの見直しをしました。こんぱいるできるのですが、
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,21 @@
|
|
1
|
+
。。。@naka ~/besten
|
2
|
+
$ gcc -o bcopy1 bcopy1.c -lpdcursesw
|
3
|
+
。。。@naka ~/besten
|
4
|
+
$ bcopy1
|
5
|
+
パラメータが不正です。
|
6
|
+
bcopy コピー元ファイル名 コピー先ファイル名
|
7
|
+
|
8
|
+
。。。@naka ~/besten
|
9
|
+
$ bcopy1 dtfile dtfile3
|
10
|
+
ファイルdtfileがオープンできません。
|
11
|
+
|
12
|
+
。。。@naka ~/besten
|
13
|
+
$
|
14
|
+
|
15
|
+
|
1
16
|
データ"LACKNUM.DAT"をデータ"LACKNUM3.DAT"にコピー
|
2
|
-
し、表示するプログラムですが、実行するとエラーがでてうまくいきません。どの当たりが悪いのかおしえてください
|
17
|
+
し、表示するプログラムですが、実行するとコンパイルはとおります。しかし上のようなエラーがでてうまくいきません。どの当たりが悪いのかおしえてください
|
18
|
+
|
3
19
|
コード
|
4
20
|
|
5
21
|
/* bcopy … ファイルのコピー */
|
@@ -19,7 +35,7 @@
|
|
19
35
|
#define BSIZE 44 // この大きさ(44byte)に分割してコピー
|
20
36
|
|
21
37
|
char dtfile[] = "LACKNUM.DAT"; // ファイル名
|
22
|
-
char
|
38
|
+
char dtfile3[] = "LACKNUM3.DAT"; // 4, LACKNUM.DATに保存されているデータを記録するのに
|
23
39
|
// 十分な数の配列"LACKNUM3.DAT" を確保して下さい。
|
24
40
|
typedef struct {
|
25
41
|
struct tm local;
|
@@ -28,35 +44,32 @@
|
|
28
44
|
|
29
45
|
//void disp(char* , int );
|
30
46
|
|
31
|
-
int main(
|
47
|
+
int main(int argc,char* argv[])
|
32
48
|
{
|
33
|
-
int n,num;
|
49
|
+
int i,n,num;
|
34
50
|
FILE *fp, *fp3; // *fpと *fp3はファイルポインタ
|
35
51
|
double best3;
|
36
52
|
time_besten besten;
|
37
53
|
unsigned char buf[BSIZE];
|
38
54
|
|
39
|
-
if (
|
55
|
+
if (argc != 3) {
|
40
|
-
fprintf(stderr, "
|
56
|
+
fprintf(stderr, "パラメータが不正です。\n");
|
41
57
|
fprintf(stderr, "bcopy コピー元ファイル名 コピー先ファイル名\n");
|
42
58
|
} else {
|
43
|
-
if ((fp = fopen(
|
59
|
+
if ((fp = fopen(*++argv, "rb")) == NULL) {
|
44
60
|
/* *++argv=const char *filenameも ,"rb"=const char *modeもポインタ */
|
45
|
-
fprintf(stderr, "ファイル%sがオープンできません。\n",
|
61
|
+
fprintf(stderr, "ファイル%sがオープンできません。\n", *argv);
|
46
62
|
return (1);
|
47
|
-
} else if ((fp3 =
|
63
|
+
} else if ((fp3 =fopen( *++argv, "wb")) == NULL) {
|
48
|
-
fprintf(stderr, "ファイル%sがオープンできません。\n",
|
64
|
+
fprintf(stderr, "ファイル%sがオープンできません。\n", *argv);
|
49
65
|
fclose(fp);
|
50
66
|
return (1);
|
51
67
|
} else {
|
52
|
-
while ((n = fread(buf,
|
68
|
+
while ( (n = fread(buf, BSIZE, 1, fp)) > 0){
|
53
69
|
/* ファイルポインタfpからsizeof(struct tm) バイトのデータを
|
54
70
|
1 個読み込み、読み込みデータ格納先のポインタbufに格納する */
|
55
|
-
fwrite(buf,
|
71
|
+
fwrite(buf,n, 1, fp3);
|
56
|
-
|
57
|
-
|
72
|
+
|
58
|
-
time_besten besten;
|
59
|
-
|
60
73
|
while((i = fread(&besten,sizeof(struct tm),1, fp3)) > 0 ){
|
61
74
|
|
62
75
|
printf("%d年 %d月 %d日 %d時 %d分 %d秒\n",
|
@@ -65,29 +78,20 @@
|
|
65
78
|
fread(&best3,sizeof(double),1, fp3);
|
66
79
|
printf("得点(所要時間)は%.1f秒\n\n",besten.best3);
|
67
80
|
}
|
68
|
-
|
81
|
+
|
69
|
-
// 一瞬で画面が消えてしまう場合には、
|
70
|
-
// 以下の文を入力します。
|
71
82
|
fflush(stdin);
|
72
83
|
getchar();
|
73
84
|
|
85
|
+
fclose(fp);
|
86
|
+
fclose(fp3);
|
74
87
|
}
|
75
|
-
|
88
|
+
|
76
|
-
fclose(fp3);
|
77
89
|
}
|
78
90
|
}
|
79
91
|
return (0);
|
80
92
|
}
|
81
93
|
|
82
|
-
/*結果
|
83
94
|
|
84
|
-
...@naka ~/besten
|
85
|
-
$ gcc -o bcopy1 bcopy1.c -lpdcursesw
|
86
|
-
/mingw/lib/libmingw32.a(main.o):main.c:(.text+0x104): unde
|
87
|
-
fined reference to `WinMain@16'
|
88
|
-
collect2: ld returned 1 exit status
|
89
95
|
|
90
|
-
|
96
|
+
|
91
|
-
$
|
92
|
-
*/
|
93
97
|
```
|