質問編集履歴

4

2021/06/20 16:29

投稿

darutanian7-1.
darutanian7-1.

スコア0

test CHANGED
@@ -1 +1 @@
1
- fclose(fp)はこのふつの関数内でそれぞれ宣言べきですか?
1
+ fclose(fp)をしら、再度ファイルオープンる作業は必要ですか?
test CHANGED
File without changes

3

2021/06/20 16:29

投稿

darutanian7-1.
darutanian7-1.

スコア0

test CHANGED
File without changes
test CHANGED
@@ -34,11 +34,11 @@
34
34
 
35
35
 
36
36
 
37
- ・void fwriteDWORD(DWORD dw, FILE *fp); 引数dwを256(=8bit)で割った余り求め、 ファイルに書き出す。 wを256で割った商をdwに代入する。 この操作を4回繰り返す。 なお、ファイルの書き出しにはFILEポインタを利用せよ。
37
+ ・void fwriteDWORD(DWORD dw, FILE *fp); 引数dwを256(=8bit)で割った余り求め、 ファイルに書き出す。 wを256で割った商をdwに代入する。 この操作を4回繰り返す。 なお、ファイルの書き出しにはFILEポインタを利用せよ。
38
38
 
39
39
 
40
40
 
41
- あと指示として, 上記の関数の前にファイルオープンするとあります.
41
+ あと指示として, 上記の関数の前にファイルオープンするとあります
42
42
 
43
43
 
44
44
 

2

2021/06/20 16:25

投稿

darutanian7-1.
darutanian7-1.

スコア0

test CHANGED
@@ -1 +1 @@
1
- 以下コード誤りや是正すべき部分を教えもらえると助ります。
1
+ fclose(fp)はこふたつ関数内でそれぞれ宣言すべきです
test CHANGED
@@ -1,4 +1,32 @@
1
+ 以下はヘッダファイル
2
+
3
+ ```C言語
4
+
5
+ #ifndef WORD_H_
6
+
7
+ #define WORD_H_
8
+
9
+ #include <stdio.h>
10
+
11
+ typedef unsigned short WORD; /* 符号なしshort intをWORDと呼ぶ*/
12
+
13
+ typedef unsigned long DWORD; /* 符号なしlong intをDWORDと呼ぶ*/
14
+
15
+ typedef unsigned char BYTE; /* 符号なしcharをBYTEと呼ぶ*/
16
+
17
+ void fwriteWORD(WORD w, FILE *fp);
18
+
19
+ void fwriteDWORD(DWORD dw, FILE *fp); #endif /* WORD_H_ */
20
+
21
+
22
+
23
+ ```
24
+
25
+
26
+
1
- 以下はヘッダファイルでプロトタイプ宣言されている関数の内容です
27
+ 以下はヘッダファイルでプロトタイプ宣言されている関数の内容
28
+
29
+
2
30
 
3
31
  ・void fwriteWORD(WORD w, FILE *fp)
4
32
 
@@ -6,4 +34,64 @@
6
34
 
7
35
 
8
36
 
9
- ・void fwriteDWORD(DWORD dw, FILE *fp); 引数dwを256(=8bit)で割った余り求め、 ファイルに書き出す。 wを256で割った商をdwに代入する。 この操作を4回繰り返す。 な お、ファイルの書き出しにはFILEポインタを利用せよ。 あと指示として, 上記の関数の前にファイルオープンするとあります.
37
+ ・void fwriteDWORD(DWORD dw, FILE *fp); 引数dwを256(=8bit)で割った余り求め、 ファイルに書き出す。 wを256で割った商をdwに代入する。 この操作を4回繰り返す。 なお、ファイルの書き出しにはFILEポインタを利用せよ。
38
+
39
+
40
+
41
+ あと指示として, 上記の関数の前にファイルオープンするとあります.
42
+
43
+
44
+
45
+ 関数より前にファイルをオープンするという前提条件の上で、それぞれの関数でそのファイルに書き込む動作をするとき、fclose(fp)を最初の関数内で定義したら、次の関数を使う時再び、ファイルをオープンする作業が必要なのでしょうか?
46
+
47
+
48
+
49
+ ```C言語
50
+
51
+ #include<stdio.h>
52
+
53
+ int main(void) {
54
+
55
+ FILE*fp=NULL;
56
+
57
+ fp=fopen(" fp,"w");
58
+
59
+ return 0;
60
+
61
+ }
62
+
63
+ void fwriteWORD(WORD w,FILE*fp) {
64
+
65
+ int i,r,s;
66
+
67
+ for(i=0;i<2;i++){
68
+
69
+ r=w%256; s=w/256;
70
+
71
+ fputc(fp, "%d\n",r); w=s;
72
+
73
+ }
74
+
75
+ fclose(fp);
76
+
77
+ }
78
+
79
+
80
+
81
+ void fwriteDWORD(DWORD dw,FILE*fp) {
82
+
83
+ int i,r,s; for(i=0;i<4;i++){
84
+
85
+ r=dw%256; s=dw/256;
86
+
87
+ fputc(fp, "%d\n",r); w=s;
88
+
89
+ }
90
+
91
+ fclose(fp);
92
+
93
+ }
94
+
95
+
96
+
97
+ ```

1

2021/06/20 16:23

投稿

darutanian7-1.
darutanian7-1.

スコア0

test CHANGED
File without changes
test CHANGED
@@ -6,58 +6,4 @@
6
6
 
7
7
 
8
8
 
9
- ・void fwriteDWORD(DWORD dw, FILE *fp); 引数dwを256(=8bit)で割った余り求め、 ファイルに書き出す。 wを256で割った商をdwに代入する。 この操作を4回繰り返す。 な お、ファイルの書き出しにはFILEポインタを利用せよ。 あと指示として, 上記の関数の前にファイルオープンするとあります.
10
-
11
-
12
-
13
- 以下はヘッダファイル関数(word.h)
14
-
15
- #ifndef WORD_H_
16
-
17
- #define WORD_H_
18
-
19
- #include <stdio.h>
20
-
21
- typedef unsigned short WORD; /* 符号なしshort intをWORDと呼ぶ*/ typedef unsigned long DWORD; /* 符号なしlong intをDWORDと呼ぶ*/ typedef unsigned char BYTE; /* 符号なしcharをBYTEと呼ぶ*/ void fwriteWORD(WORD w, FILE *fp); void fwriteDWORD(DWORD dw, FILE *fp); #endif /* WORD_H_ */
22
-
23
-
24
-
25
- 以下は自分で書いたソースコード(word.c) #include<stdio.h>
26
-
27
- int main(void)
28
-
29
- { FILE*fp=NULL; fp=fopen("fp","w"); return 0; }
30
-
31
-
32
-
33
- void fwriteWORD(WORD w,FILE*fp)
34
-
35
- { int i,r,s; for(i=0;i<2;i++){
36
-
37
- r=w%256; s=w/256;
38
-
39
- fputc(fp, "%d\n",r); w=s;
40
-
41
- }
42
-
43
- }
44
-
45
-
46
-
47
- void fwriteDWORD(DWORD dw,FILE*fp)
48
-
49
- { int i,r,s;
50
-
51
- for(i=0;i<4;i++){
52
-
53
- r=dw%256; s=dw/256;
54
-
55
- fputc(fp, "%d\n",r); w=s;
56
-
57
- }
58
-
59
- }
60
-
61
-
62
-
63
- 関数の外でファイルオープンするのはこんな感じでしょうか? fclose(fp)はそれぞれの関数内に入れた方がいいのでしょうか? あと、他に訂正した方がいいところがあれば教えてもらえると助かります。
9
+ ・void fwriteDWORD(DWORD dw, FILE *fp); 引数dwを256(=8bit)で割った余り求め、 ファイルに書き出す。 wを256で割った商をdwに代入する。 この操作を4回繰り返す。 な お、ファイルの書き出しにはFILEポインタを利用せよ。 あと指示として, 上記の関数の前にファイルオープンするとあります.