質問編集履歴

4

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

2020/02/04 05:25

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 書き出し 判定 並べ替え
1
+ ファイルの中身を書き出し 判定
test CHANGED
@@ -1,75 +1,105 @@
1
- 循環し整数計算出力に書プログラムですが、いまいち内容がよく分かりません
1
+ ■やりい事変更させていただす。
2
2
 
3
- 自体を書いてみましが。所何処間違っていると思われます
3
+ マン行(コマンドライン)からファイル名が与えられたとき、 そのファイル名のファイルの中身をそのま標準出力に書き出プログラムを作成し
4
4
 
5
- い方細かく教え下さい宜しお願します。
5
+ ファイルの中身の書出に先立ってファイル名と「:::」とを1行とし標準出力に左詰にして書き出すこと なお、与えられたファイル名のファイルを開ことができなかった時は、ファイル名に続て「: can't open.」と書き出す。
6
6
 
7
- 追加・削除箇所も教えて下さい。宜しくお願い致します。
7
+
8
8
 
9
+ ■成功例
9
10
 
11
+ コマンドライン入力
10
12
 
13
+ data1.txt
11
14
 
15
+
16
+
17
+ 標準出力
18
+
19
+ data1.txt:::
20
+
21
+ ABCD
22
+
23
+ EFG
24
+
25
+
26
+
27
+
28
+
29
+ コマンドライン入力
30
+
31
+ data3.txt
32
+
33
+
34
+
35
+ 標準出力
36
+
37
+ data3.txt:::
38
+
39
+ Once upon a time,
40
+
41
+ there lived a man
42
+
43
+ whose name was Rip van Winkle.
44
+
45
+
46
+
47
+
48
+
49
+ コマンドライン入力
50
+
51
+ program.c
52
+
53
+
54
+
55
+ 標準出力
56
+
57
+ program.c: can't open.
12
58
 
13
59
  ```C
14
60
 
15
61
  #include <stdio.h>
16
62
 
17
-
18
-
19
63
  int main() {
20
64
 
21
- FILE *fp;
65
+ FILE *fp;
22
66
 
23
- int num;
67
+ fp= fopen("data1.txt","r");
24
68
 
25
-
69
+ if( fp == NULL ) {
26
70
 
27
- /* 総和 */
71
+ printf(": can't open.");
28
72
 
29
- int sum = 0;
73
+ } else {
30
74
 
31
-
75
+ int c;
32
76
 
33
-
77
+ while ((c = fgetc(fp)) != EOF) {
34
78
 
35
- printf("力 = ");
79
+ putchar(c);
36
80
 
37
- scanf("%d", &num);
81
+ }
38
82
 
39
-
83
+ fclose(fp);
40
84
 
85
+ }
41
86
 
42
-
43
- if(num<1) {
44
-
45
- printf("。\n");
46
-
47
- printf("1, 2, 3, \n");
48
-
49
- printf("もう一度、。\n");
50
-
51
- }
52
-
53
-
54
-
55
- else {
56
-
57
- for(i=1;i<=num;++i){
58
-
59
-
60
-
61
-
62
-
63
- }
64
-
65
- fclose(fp);
66
-
67
- }
68
-
69
- return 0;
87
+ return 0;
70
88
 
71
89
  }
72
90
 
73
91
  ```
74
92
 
75
93
  この状態からどう改修すれば良いか教えて頂きたく。。。
94
+
95
+ ファイル中身
96
+
97
+ data1.txt ABCD EFG
98
+
99
+ data2.txt 123 4567 890123
100
+
101
+ data3.txt Once upon a time,
102
+
103
+          there lived a man
104
+
105
+          whose name was Rip van Winkle.

3

一部変更

2020/02/04 05:25

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- ファイルの中身を書き出し 判定
1
+ 書き出し 判定 並べ替え
test CHANGED
@@ -1,62 +1,12 @@
1
+ 循環した整数を計算し出力に書き出すプログラムですが、いまいち内容がよく分かりません。
2
+
3
+ コード自体を書いてみましたが。所何処と間違っていると思われます。
4
+
1
- ■やりた事を少し変更せてただきます。
5
+ 詳し方、細かく教えて下さい。宜しくお願いします。
6
+
7
+ 追加・削除箇所も教えて下さい。宜しくお願い致します。
2
8
 
3
9
 
4
-
5
- コマンド行(コマンドライン)からファイル名が与えられたとき、 そのファイル名のファイルの中身をそのまま標準出力に書き出すプログラムを作成し
6
-
7
- ファイルの中身の書出しに先立って、ファイル名と「:::」とを1行として標準出力に左詰にして書き出すこと。 なお、与えられたファイル名のファイルを開くことができなかった時は、ファイル名に続いて「: can't open.」と書き出す。
8
-
9
-
10
-
11
- ■成功例
12
-
13
- コマンドライン入力
14
-
15
- data1.txt
16
-
17
-
18
-
19
- 標準出力
20
-
21
- data1.txt:::
22
-
23
- ABCD
24
-
25
- EFG
26
-
27
-
28
-
29
-
30
-
31
- コマンドライン入力
32
-
33
- data3.txt
34
-
35
-
36
-
37
- 標準出力
38
-
39
- data3.txt:::
40
-
41
- Once upon a time,
42
-
43
- there lived a man
44
-
45
- whose name was Rip van Winkle.
46
-
47
-
48
-
49
-
50
-
51
- コマンドライン入力
52
-
53
- program.c
54
-
55
-
56
-
57
- 標準出力
58
-
59
- program.c: can't open.
60
10
 
61
11
 
62
12
 
@@ -70,19 +20,45 @@
70
20
 
71
21
  FILE *fp;
72
22
 
73
- fp= fopen("data1.txt","r");
23
+ int num;
74
24
 
75
- if( fp == NULL ) {
25
+
76
26
 
77
- printf(": can't open.");
27
+ /* 総和 */
78
28
 
79
- } else {
29
+ int sum = 0;
80
30
 
81
- int c;
31
+
82
32
 
83
- while ((c = fgetc(fp)) != EOF) {
33
+
84
34
 
35
+ printf("力 = ");
36
+
37
+ scanf("%d", &num);
38
+
39
+
40
+
41
+
42
+
85
- putchar(c);
43
+ if(num<1) {
44
+
45
+ printf("。\n");
46
+
47
+ printf("1, 2, 3, \n");
48
+
49
+ printf("もう一度、。\n");
50
+
51
+ }
52
+
53
+
54
+
55
+ else {
56
+
57
+ for(i=1;i<=num;++i){
58
+
59
+
60
+
61
+
86
62
 
87
63
  }
88
64
 
@@ -97,21 +73,3 @@
97
73
  ```
98
74
 
99
75
  この状態からどう改修すれば良いか教えて頂きたく。。。
100
-
101
-
102
-
103
- ファイル中身
104
-
105
- data1.txt ABCD EFG
106
-
107
-
108
-
109
- data2.txt 123 4567 890123
110
-
111
-
112
-
113
- data3.txt Once upon a time,
114
-
115
-          there lived a man
116
-
117
-          whose name was Rip van Winkle.

2

やりたい事を更新しました

2020/02/01 12:08

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- ファイルの中身をそのまま書き出す方法
1
+ ファイルの中身を書き出し 判定
test CHANGED
@@ -1,8 +1,62 @@
1
- ファイル名のファイルの中身そのまま標準出力に書き出すプログラムを作っています。
1
+ ■やりたい事少し変更させていただきます。
2
2
 
3
- ・ファイルが読み取れたらファイル名とファイルの中身を出力
4
3
 
4
+
5
+ コマンド行(コマンドライン)からファイル名が与えられたとき、 そのファイル名のファイルの中身をそのまま標準出力に書き出すプログラムを作成し
6
+
7
+ ファイルの中身の書出しに先立って、ファイル名と「:::」とを1行として標準出力に左詰にして書き出すこと。 なお、与えられたファイル名のファイルを開くことができなかった時は、ファイル名に続いて「: can't open.」と書き出す。
8
+
9
+
10
+
11
+ ■成功例
12
+
13
+ コマンドライン入力
14
+
15
+ data1.txt
16
+
17
+
18
+
19
+ 標準出力
20
+
21
+ data1.txt:::
22
+
23
+ ABCD
24
+
25
+ EFG
26
+
27
+
28
+
29
+
30
+
31
+ コマンドライン入力
32
+
33
+ data3.txt
34
+
35
+
36
+
37
+ 標準出力
38
+
39
+ data3.txt:::
40
+
41
+ Once upon a time,
42
+
43
+ there lived a man
44
+
45
+ whose name was Rip van Winkle.
46
+
47
+
48
+
49
+
50
+
51
+ コマンドライン入力
52
+
53
+ program.c
54
+
55
+
56
+
57
+ 標準出力
58
+
5
- ・ファイルが読み取れない場合: can't open.と出力
59
+ program.c: can't open.
6
60
 
7
61
 
8
62
 
@@ -12,100 +66,52 @@
12
66
 
13
67
 
14
68
 
15
- int main(void)
69
+ int main() {
16
70
 
17
- {
71
+ FILE *fp;
18
72
 
73
+ fp= fopen("data1.txt","r");
19
74
 
75
+ if( fp == NULL ) {
20
76
 
21
- FILE *fp;
77
+ printf(": can't open.");
22
78
 
23
- fp= fopen("data1.txt","r");
79
+ } else {
24
80
 
81
+ int c;
25
82
 
83
+ while ((c = fgetc(fp)) != EOF) {
26
84
 
27
- if( fp==NULL){
85
+ putchar(c);
28
86
 
29
- printf(": can't open.\n");}
87
+ }
30
88
 
31
- else{
89
+ fclose(fp);
32
90
 
33
- printf(fp,"%s\n");
91
+ }
34
92
 
35
- fclose(fp);
36
-
37
-
38
-
39
- }
40
-
41
- return 0;
93
+ return 0;
42
94
 
43
95
  }
44
96
 
45
97
  ```
46
98
 
47
-
48
-
49
- 上記内容で実行しても上手くいかず
50
-
51
- 自分自身でもprintf(fp,"%s\n");の所が問題ある気がします。
52
-
53
- (そもそもファイル名(fp)を書くだけでファイルの中身出力出来るのかな??)
54
-
55
- 根本的に間違ってもしれませんが修正箇所を教えて頂きたく。
99
+ この状態からどう改修すれば良いか教えて頂きたく。。。
56
100
 
57
101
 
58
102
 
103
+ ファイル中身
104
+
105
+ data1.txt ABCD EFG
59
106
 
60
107
 
61
108
 
109
+ data2.txt 123 4567 890123
62
110
 
63
111
 
64
112
 
65
- ■編集後
113
+ data3.txt Once upon a time,
66
114
 
67
- ```c
115
+          there lived a man
68
116
 
69
- #include <stdio.h>
70
-
71
-
72
-
73
- int main(void)
74
-
75
- {
76
-
77
-
78
-
79
- FILE *fp;
80
-
81
- fp= fopen("data1.txt","r");
82
-
83
-
84
-
85
- if( fp==NULL){
86
-
87
- printf(": can't open.");}
88
-
89
- else{
90
-
91
-
92
-
93
- int c;
94
-
95
- while ((c = fgetc(fp)) != EOF) putchar(c);
117
+          whose name was Rip van Winkle.
96
-
97
- printf("%s\n",c);
98
-
99
-
100
-
101
- fclose(fp);
102
-
103
-
104
-
105
- }
106
-
107
- return 0;
108
-
109
- }
110
-
111
- ```

1

int c; while ((c = fgetc(fp)) != EOF) putchar(c);を追加しましたが...

2019/11/24 04:18

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -53,3 +53,59 @@
53
53
  (そもそもファイル名(fp)を書くだけでファイルの中身出力出来るのかな??)
54
54
 
55
55
  根本的に間違っているかもしれませんが修正箇所を教えて頂きたく。
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+ ■編集後
66
+
67
+ ```c
68
+
69
+ #include <stdio.h>
70
+
71
+
72
+
73
+ int main(void)
74
+
75
+ {
76
+
77
+
78
+
79
+ FILE *fp;
80
+
81
+ fp= fopen("data1.txt","r");
82
+
83
+
84
+
85
+ if( fp==NULL){
86
+
87
+ printf(": can't open.");}
88
+
89
+ else{
90
+
91
+
92
+
93
+ int c;
94
+
95
+ while ((c = fgetc(fp)) != EOF) putchar(c);
96
+
97
+ printf("%s\n",c);
98
+
99
+
100
+
101
+ fclose(fp);
102
+
103
+
104
+
105
+ }
106
+
107
+ return 0;
108
+
109
+ }
110
+
111
+ ```