質問編集履歴

2

削除された内容の復元を行いました

2020/02/04 05:31

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 並べ替え 検査 nからm
1
+ ファイル 同一検査 コマンドライン
test CHANGED
@@ -1,16 +1,74 @@
1
- 循環た整数計算し出力に書き出すプログラムですがいまいち内容よく分りません
1
+ いくつかのファイルが用意てあるとき、その中のファイルで中身が同じものがあるかどうか調べるプログラムを作りたい。 そのために二つのファイルの中身同じであるどうかを調べるプログラム作成する
2
2
 
3
- 自体書いみましが。所何処間違っている思われます。
3
+ 調べる対象の二つのファイルのファイル名は、マン行(コマンドライン)から与える。中身が同一であれば、 二つのファイルの名前「,」で区切っ並べ後に「: IDENTICAL」出力し、 そうでなければ「: DIFFERENT」出力るようにする
4
4
 
5
- 詳しい方、細かく教えて下さい。宜しくお願いします。
5
+
6
6
 
7
- 追加・削除箇所も教えて下さい宜しくお願す。
7
+ まず、与られた二つのファイル名につい、 与えられた順にその名前を「,」で区切りながら書き出しすこのとき合わせてそのファイルが開けることを確認する。 どちらかが開けなとわかった時には、その時点でそのファイル名の直後に「: can't open.」と書き出て改行をした上で実行を終了 ( return 0; )この結果、1番目のファイル名でファイルが開けなかったときは最初のファイル名の直後に「: can't open.」が続くことになり、2番目のファイル名でファイルが開けなかったときは「,」で区切られて2つのファイル名が並び、その2番目のファイル名の直後に「: can't open.」が並ぶことになる
8
8
 
9
+
9
10
 
11
+
10
12
 
13
+ ■成功例
11
14
 
15
+ コマンドライン入力
12
16
 
17
+ data1.txt data2.txt
13
18
 
19
+
20
+
21
+ 標準出力
22
+
23
+ data1.txt, data2.txt: DIFFERENT
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+ コマンドライン入力
32
+
33
+ data3.txt data1.txt
34
+
35
+
36
+
37
+ 標準出力
38
+
39
+ data3.txt, data1.txt: IDETICAL
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+ コマンドライン入力
48
+
49
+ data4.txt data1.txt
50
+
51
+
52
+
53
+ 標準出力
54
+
55
+ data4.txt: can't open.
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+ コマンドライン入力
64
+
65
+ data3.txt data1.c
66
+
67
+
68
+
69
+ 標準出力
70
+
71
+ data3.txt, data1.c: can't open.
14
72
 
15
73
  ```c
16
74
 
@@ -18,48 +76,68 @@
18
76
 
19
77
  #include <stdlib.h>
20
78
 
21
-
22
-
23
79
  int main(int argc, char *argv[]){
24
80
 
81
+
25
82
 
83
+ #define fn "data1.txt"
84
+
85
+ #define gn "data2.txt"
86
+
87
+ #define kn "data3.txt"
88
+
89
+ FILE *f, *g, *k;
90
+
91
+ f= fopen(fn, "r"); g= fopen(gn,"r"); k= fopen(kn,"r");
92
+
93
+ if( f==NULL){
94
+
95
+ printf("NG:%s\n",fn); exit(-1);
96
+
97
+ }
98
+
99
+ g= fopen(gn, "r");
100
+
101
+ if( g==NULL){
102
+
103
+ printf("NG:%s\n",gn); exit(-1);
104
+
105
+ }
106
+
107
+ if( k==NULL){
108
+
109
+ printf("NG:%s\n",kn); exit(-1);
110
+
111
+ }
112
+
113
+ int cf, cg, ck;
26
114
 
27
115
 
28
116
 
29
- int main(void)
117
+ while( (cf= fgetc(f))!=EOF &&
30
118
 
31
- {
119
+ (cg= fgetc(g))!=EOF &&
32
120
 
33
- /* 変数の宣言 */
121
+ (ck= fgetc(k))!=EOF){
34
122
 
35
- int a;
123
+ if( cf!=cg) break;
36
124
 
37
-
125
+ }
38
126
 
39
- /* 数値の入力 */
127
+ if( !(cf==EOF && fgetc(g)==EOF) )
40
128
 
41
- printf("数値を入力してください = ");
129
+ printf("%s, %s: DIFFERENT\n", fn,gn);
42
130
 
43
- scanf("%d", &a);
131
+ fclose(f); fclose(g);
44
132
 
45
-
133
+
46
134
 
47
- /* 条件分岐 */
48
-
49
- if (a)
50
-
51
-
52
-
53
- return 0;
135
+ return 0;
54
136
 
55
137
  }
56
138
 
57
139
  ```
58
140
 
59
-
60
-
61
-
62
-
63
141
  お詳しい方
64
142
 
65
143
  正しいプログラムを教えて頂きたく。。。

1

一部変更

2020/02/04 05:30

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- ファイル 同一検査 コマンドライン
1
+ 並べ替え 検査 nからm
test CHANGED
@@ -1,76 +1,12 @@
1
- いくつかのファイルが用意てあると、その中のファイルで中身が同じものがあるかどうかを調べるプログラムを作りた。 そのために、二つのファイルの中身同じであるどうかを調べるプログラム作成する
1
+ 循環た整数を計算し出力に書出すプログラムですが、まいち内容よく分りません
2
+
3
+ コード自体を書いてみましたが。所何処と間違っていると思われます。
4
+
5
+ 詳しい方、細かく教えて下さい。宜しくお願いします。
6
+
7
+ 追加・削除箇所も教えて下さい。宜しくお願い致します。
2
8
 
3
9
 
4
-
5
- 調べる対象の二つのファイルのファイル名は、コマンド行(コマンドライン)から与える。中身が同一であれば、 二つのファイルの名前を「,」で区切って並べた後に「: IDENTICAL」と出力し、 そうでなければ「: DIFFERENT」と出力するようにする。
6
-
7
-
8
-
9
- まず、与えられた二つのファイル名について、 与えられた順にその名前を「,」で区切りながら書き出しす。このとき合わせてそのファイルが開けることを確認する。 どちらかが開けないとわかった時には、その時点でそのファイル名の直後に「: can't open.」と書き出して改行をした上で実行を終了 ( return 0; )する。この結果、1番目のファイル名でファイルが開けなかったときは最初のファイル名の直後に「: can't open.」が続くことになり、2番目のファイル名でファイルが開けなかったときは「,」で区切られて2つのファイル名が並び、その2番目のファイル名の直後に「: can't open.」が並ぶことになる
10
-
11
-
12
-
13
-
14
-
15
- ■成功例
16
-
17
- コマンドライン入力
18
-
19
- data1.txt data2.txt
20
-
21
-
22
-
23
- 標準出力
24
-
25
- data1.txt, data2.txt: DIFFERENT
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
- コマンドライン入力
34
-
35
- data3.txt data1.txt
36
-
37
-
38
-
39
- 標準出力
40
-
41
- data3.txt, data1.txt: IDETICAL
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
- コマンドライン入力
50
-
51
- data4.txt data1.txt
52
-
53
-
54
-
55
- 標準出力
56
-
57
- data4.txt: can't open.
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
- コマンドライン入力
66
-
67
- data3.txt data1.c
68
-
69
-
70
-
71
- 標準出力
72
-
73
- data3.txt, data1.c: can't open.
74
10
 
75
11
 
76
12
 
@@ -86,63 +22,33 @@
86
22
 
87
23
  int main(int argc, char *argv[]){
88
24
 
89
-
90
-
91
- #define fn "data1.txt"
92
-
93
- #define gn "data2.txt"
94
-
95
- #define kn "data3.txt"
96
25
 
97
26
 
27
+
98
28
 
99
- FILE *f, *g, *k;
29
+ int main(void)
100
30
 
101
- f= fopen(fn, "r"); g= fopen(gn,"r"); k= fopen(kn,"r");
31
+ {
102
32
 
103
- if( f==NULL){
33
+ /* 変数の宣言 */
104
34
 
105
- printf("NG:%s\n",fn); exit(-1);
35
+ int a;
106
36
 
107
- }
37
+
108
38
 
109
- g= fopen(gn, "r");
39
+ /* 数値の入力 */
110
40
 
111
- if( g==NULL){
41
+ printf("数値を入力してください = ");
112
42
 
113
- printf("NG:%s\n",gn); exit(-1);
43
+ scanf("%d", &a);
114
44
 
115
- }
45
+
116
46
 
117
- if( k==NULL){
47
+ /* 条件分岐 */
118
48
 
119
- printf("NG:%s\n",kn); exit(-1);
49
+ if (a)
120
-
121
- }
122
50
 
123
51
 
124
-
125
- int cf, cg, ck;
126
-
127
-
128
-
129
- while( (cf= fgetc(f))!=EOF &&
130
-
131
- (cg= fgetc(g))!=EOF &&
132
-
133
- (ck= fgetc(k))!=EOF){
134
-
135
- if( cf!=cg) break;
136
-
137
- }
138
-
139
- if( !(cf==EOF && fgetc(g)==EOF) )
140
-
141
- printf("%s, %s: DIFFERENT\n", fn,gn);
142
-
143
- fclose(f); fclose(g);
144
-
145
-
146
52
 
147
53
  return 0;
148
54