質問するログイン新規登録

質問編集履歴

2

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

2020/02/04 05:01

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- 中身が同じか調べたい ソート
1
+ ファイルの中身が同じかどうか調べたい
body CHANGED
@@ -1,26 +1,56 @@
1
- 循環した整を計算出力に書き出すプログラムですいまいち内容よく分かりません
2
- 自体書いみましが。所何処間違っていると思わす。
3
- 詳しい方細かく教て下さ。宜しくお願いしす。
4
- 追加・削除箇所も教えて下さい。宜くお願い致します
1
+ のファイルが用意てある時、その中のファイルで中身が同じものがあるかどうかを調べるプログラムを作りたいです。 そのために二つのファイルの中身同じであるどうかを調べる必要有り。
2
+ 調べる対象の二つのファイルのファイル名は、マン行(コマンドライン)から与える。中身が同一であれば、 二つのファイルの名前「,」で区切っ並べ後に「: IDENTICAL」出力し、 そうでなけば「: DIFFERENT」と出力るようにする
3
+ まずられた二つのファイル名につて、 与えられた順にその名前を「,」で区切りながら書き出て行。このとき合わせてそのファイルが開けることを確認する。 どちらかが開けなとわかった時には、その時点でそのファイル名の直後に「: can't open.」と書き出て改行をした上で実行を終了 ( return 0; )この結果、1番目のファイル名でファイルが開けなかったときは最初のファイル名の直後に「: can't open.」が続くことになり、2番目のファイル名でファイルが開けなかったときは「,」で区切られて2つのファイル名が並び、その2番目のファイル名の直後に「: can't open.」が並ぶことになる。
4
+ ■つぎのファイル群が実行環境に用意れてるとします
5
+ **ファイル名**    **内容**
6
+ data1.txt   ABCD EFG
7
+ data2.txt ABCD EfG
8
+ data3.txt ABCD EFG
9
+ ■コマンドライン入力
10
+ data1.txt data2.txt
11
+ 正解出力
12
+ data1.txt, data2.txt: DIFFERENT
13
+ ■コマンドライン入力
14
+ data3.txt data1.txt
15
+ 正解出力
16
+ data3.txt, data1.txt: IDETICAL
17
+ ■コマンドライン入力
18
+ data4.txt data1.txt
19
+ 正解出力
20
+ data4.txt: can't open.
21
+ ■コマンドライン入力
22
+ data3.txt data1.c
23
+ 正解出力
24
+ data3.txt, data1.c: can't open.
5
25
 
26
+
6
27
  #include <stdio.h>
7
28
  #include <stdlib.h>
8
29
 
9
30
  int main(int argc, char *argv[]){
10
31
 
11
32
 
12
-
33
+ #define fn "data1.txt"
34
+ #define gn "data2.txt"
35
+ FILE *f, *g;
13
- f=5 ; g= f(gn,"");
36
+ f= fopen(fn, "r"); g= fopen(gn,"r");
37
+
14
38
  if( f==NULL){
15
39
  printf("NG:%s\n",fn); exit(-1);
16
40
  }
41
+ g= fopen(gn, "r");
42
+ if( g==NULL){
43
+ printf("NG:%s\n",gn); exit(-1);
17
- g=
44
+ }
45
+ int cf, cg;
46
+
18
47
  while( (cf= fgetc(f))!=EOF &&
19
48
  (cg= fgetc(g))!=EOF ){
20
49
  if( cf!=cg ) break;
21
50
  }
22
- if( !(cf==EOF) )
51
+ if( !(cf==EOF && fgetc(g)==EOF) )
52
+ printf("%s and %s differ.\n", fn,gn);
23
- printf("%sose(g);
53
+ fclose(f); fclose(g);
24
54
 
25
55
  return 0;
26
56
  }

1

一部変更

2020/02/04 05:01

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- ファイルの中身が同じかどうか調べたい
1
+ 中身が同じか調べたい ソート
body CHANGED
@@ -1,90 +1,26 @@
1
- 複数のファイルが用意てある時、その中のファイルで中身が同じものがあるかどうか調べるプログラムを作りたいです。 そのために二つのファイルの中身同じであるどうかを調べる必要有り。
1
+ 循環た整数計算し出力に書き出すプログラムですいまいち内容よく分かりません
2
+ コード自体を書いてみましたが。所何処と間違っていると思われます。
3
+ 詳しい方、細かく教えて下さい。宜しくお願いします。
4
+ 追加・削除箇所も教えて下さい。宜しくお願い致します。
2
5
 
3
- 調べる対象の二つのファイルのファイル名は、コマンド行(コマンドライン)から与える。中身が同一であれば、 二つのファイルの名前を「,」で区切って並べた後に「: IDENTICAL」と出力し、 そうでなければ「: DIFFERENT」と出力するようにする。
4
-
5
- まず、与えられた二つのファイル名について、 与えられた順にその名前を「,」で区切りながら書き出して行く。このとき合わせてそのファイルが開けることを確認する。 どちらかが開けないとわかった時には、その時点でそのファイル名の直後に「: can't open.」と書き出して改行をした上で実行を終了 ( return 0; )する。この結果、1番目のファイル名でファイルが開けなかったときは最初のファイル名の直後に「: can't open.」が続くことになり、2番目のファイル名でファイルが開けなかったときは「,」で区切られて2つのファイル名が並び、その2番目のファイル名の直後に「: can't open.」が並ぶことになる。
6
-
7
-
8
-
9
- ■つぎのファイル群が実行環境に用意されているとします
10
- **ファイル名**    **内容**
11
- data1.txt   ABCD EFG
12
-
13
- data2.txt ABCD EfG
14
-
15
- data3.txt ABCD EFG
16
-
17
-
18
-
19
- ■コマンドライン入力
20
-
21
- data1.txt data2.txt
22
-
23
- 正解出力
24
-
25
- data1.txt, data2.txt: DIFFERENT
26
-
27
-
28
-
29
- ■コマンドライン入力
30
-
31
- data3.txt data1.txt
32
-
33
- 正解出力
34
-
35
- data3.txt, data1.txt: IDETICAL
36
-
37
-
38
-
39
- ■コマンドライン入力
40
-
41
- data4.txt data1.txt
42
-
43
- 正解出力
44
-
45
- data4.txt: can't open.
46
-
47
-
48
-
49
- ■コマンドライン入力
50
-
51
- data3.txt data1.c
52
-
53
- 正解出力
54
-
55
- data3.txt, data1.c: can't open.
56
-
57
-
58
-
59
-
60
-
61
6
  #include <stdio.h>
62
7
  #include <stdlib.h>
63
8
 
64
9
  int main(int argc, char *argv[]){
65
10
 
66
- #define fn "data1.txt"
67
- #define gn "data2.txt"
68
11
 
69
- FILE *f, *g;
12
+
70
- f= fopen(fn, "r"); g= fopen(gn,"r");
13
+ f=5 ; g= f(gn,"");
71
14
  if( f==NULL){
72
15
  printf("NG:%s\n",fn); exit(-1);
73
16
  }
74
- g= fopen(gn, "r");
75
- if( g==NULL){
76
- printf("NG:%s\n",gn); exit(-1);
77
- }
17
+ g=
78
-
79
- int cf, cg;
80
-
81
18
  while( (cf= fgetc(f))!=EOF &&
82
19
  (cg= fgetc(g))!=EOF ){
83
20
  if( cf!=cg ) break;
84
21
  }
85
- if( !(cf==EOF && fgetc(g)==EOF) )
22
+ if( !(cf==EOF) )
86
- printf("%s and %s differ.\n", fn,gn);
87
- fclose(f); fclose(g);
23
+ printf("%sose(g);
88
24
 
89
25
  return 0;
90
26
  }