質問編集履歴

2

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

2020/02/04 05:21

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 出力 入力 検査 計算
1
+ コマンドラインその2
test CHANGED
@@ -1,10 +1,54 @@
1
- 循環し整数を計算し出力に書き出すプログラムですが、まいち内容がよく分かりません。
1
+ ■やりたい
2
2
 
3
- 自体を書いてみましたが。所何処間違ってと思われます
3
+ マンラインに2個の整数値 n と m が与えられたとき、n から m までの整数数値順に標準出力にき出す。 整数値は左詰にし1行として書き出し n > m であれば何も書き出さずに実行を終えること。 コマンド行に引数が2個与えられたのでなときは、 「argc!=3」と左詰にし1行とて標準出力に書き出すとともに、 コマンド行に与えられ引数全てを、与えられた順に、 それぞれ左詰にして1行して標準エラー出力に書き出し、 その後でに exit(-1); よって実行を打ち切る。
4
4
 
5
- 詳しい方、細かく教えて下さい。宜しくお願いします。
5
+ 実行例
6
6
 
7
+ コマンドライン入力
8
+
9
+ 1 abc 365
10
+
11
+ 標準出力
12
+
13
+ argc!=3
14
+
15
+ 標準エラー出力
16
+
17
+ 1
18
+
19
+ abc
20
+
21
+ 365
22
+
23
+ コマンドライン入力
24
+
25
+ 1 0
26
+
27
+ 標準出力
28
+
29
+ 標準エラー出力
30
+
31
+ コマンドライン入力
32
+
33
+ 1 5
34
+
35
+ 標準出力
36
+
37
+ 1
38
+
39
+ 2
40
+
41
+ 3
42
+
43
+ 4
44
+
45
+ 5
46
+
47
+ 標準エラー出力
48
+
49
+ ■上記に対して自分なりに作成しましたが、思うような出力結果となりません。
50
+
7
- 追加・削除箇所教えて下さい。宜しお願い致します
51
+ 修正箇所等を教えて頂きたく。
8
52
 
9
53
  ```C
10
54
 
@@ -12,59 +56,63 @@
12
56
 
13
57
  #include <stdlib.h>
14
58
 
59
+ int main(int argc, char *argv[]){
15
60
 
61
+ #define LINESIZE 100
16
62
 
17
- int main(int argc, char *argv[n]){
63
+ char line [LINESIZE];
18
64
 
65
+ FILE *f;
66
+
67
+ int n,x; char rest[LINESIZE];
68
+
69
+ if( argc==1 ) f= stdin;
70
+
71
+ else{
72
+
73
+ f=fopen(argv[1],"r");
74
+
75
+ if( f==NULL ){
76
+
77
+ printf("argc!=3 %s\n",argv[1]);
78
+
19
- );
79
+ exit(-1);
80
+
81
+ }
82
+
83
+ }
84
+
85
+ for(n=1;fgets(line,LINESIZE,f)!=NULL;n++){
86
+
87
+ switch( sscanf(line,"%d%s",&x,rest)){
88
+
89
+ case EOF:
90
+
91
+ case 0:
92
+
93
+ printf("%d\n",0);
94
+
95
+ fprintf(stderr,"%d:%s",n,line);break;
96
+
97
+ case 1:
98
+
99
+ printf("%d\n",x);break;
100
+
101
+ case 2:
20
102
 
21
103
 
22
104
 
23
- int n;
105
+ printf("%d\n",x);
24
106
 
25
- fopen()
107
+ fprintf(stderr,"%d: %s",n,line);break;
26
108
 
27
- if( l==NULL ){
109
+
28
110
 
29
- printf("argv=1 ,d,k);
111
+ }
30
112
 
31
- exit(-1);
113
+ }
32
114
 
33
- }
34
-
35
- if(
36
-
37
- else
38
-
39
- {
40
-
41
- *
42
-
43
-
44
-
45
- }
46
-
47
- for(n=1;fgets(,f)!=n++){
48
-
49
- switch( sscanf(line,"s,rest)){
50
-
51
- case EOF:
52
-
53
-
54
-
55
- printf("%d\n",x);
56
-
57
- fprintf(stderr,"%d: %s",n,line);break;
58
-
59
-
60
-
61
- }
62
-
63
- }
64
-
65
-
66
-
67
- return 0;
115
+ return 0;
68
116
 
69
117
  }
70
118
 

1

一部変更

2020/02/04 05:21

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- コマンドラインその2
1
+ 出力 入力 検査 計算
test CHANGED
@@ -1,64 +1,10 @@
1
- ■やりたい
1
+ 循環し整数を計算し出力に書き出すプログラムですが、まいち内容がよく分かりません。
2
2
 
3
- マンラインに2個の整数値 n と m が与えられたとき、n から m までの整数数値順に標準出力にき出す。 整数値は左詰にし1行として書き出し n > m であれば何も書き出さずに実行を終えること。 コマンド行に引数が2個与えられたのでなときは、 「argc!=3」と左詰にし1行とて標準出力に書き出すとともに、 コマンド行に与えられ引数全てを、与えられた順に、 それぞれ左詰にして1行して標準エラー出力に書き出し、 その後でに exit(-1); よって実行を打ち切る。
3
+ 自体を書いてみましたが。所何処間違ってと思われます
4
4
 
5
+ 詳しい方、細かく教えて下さい。宜しくお願いします。
5
6
 
6
-
7
- 実行例
8
-
9
- コマンドライン入力
10
-
11
- 1 abc 365
12
-
13
- 標準出力
14
-
15
- argc!=3
16
-
17
- 標準エラー出力
18
-
19
- 1
20
-
21
- abc
22
-
23
- 365
24
-
25
-
26
-
27
- コマンドライン入力
28
-
29
- 1 0
30
-
31
- 標準出力
32
-
33
- 標準エラー出力
34
-
35
-
36
-
37
- コマンドライン入力
38
-
39
- 1 5
40
-
41
- 標準出力
42
-
43
- 1
44
-
45
- 2
46
-
47
- 3
48
-
49
- 4
50
-
51
- 5
52
-
53
- 標準エラー出力
54
-
55
-
56
-
57
- ■上記に対して自分なりに作成しましたが、思うような出力結果となりません。
58
-
59
- 修正箇所等を教えて頂きたく。
7
+ 追加・削除箇所教えて下さい。宜しお願い致します
60
-
61
-
62
8
 
63
9
  ```C
64
10
 
@@ -68,49 +14,43 @@
68
14
 
69
15
 
70
16
 
71
- int main(int argc, char *argv[]){
17
+ int main(int argc, char *argv[n]){
72
18
 
73
- #define LINESIZE 100
19
+ );
74
20
 
75
- char line [LINESIZE];
21
+
76
22
 
77
- FILE *f;
23
+ int n;
78
24
 
79
- int n,x; char rest[LINESIZE];
25
+ fopen()
80
26
 
81
- if( argc==1 ) f= stdin;
27
+ if( l==NULL ){
82
28
 
83
- else{
84
-
85
- f=fopen(argv[1],"r");
86
-
87
- if( f==NULL ){
88
-
89
- printf("argc!=3 %s\n",argv[1]);
29
+ printf("argv=1 ,d,k);
90
30
 
91
31
  exit(-1);
92
32
 
93
33
  }
94
34
 
35
+ if(
36
+
37
+ else
38
+
39
+ {
40
+
41
+ *
42
+
43
+
44
+
95
45
  }
96
46
 
97
- for(n=1;fgets(line,LINESIZE,f)!=NULL;n++){
47
+ for(n=1;fgets(,f)!=n++){
98
48
 
99
- switch( sscanf(line,"%d%s",&x,rest)){
49
+ switch( sscanf(line,"s,rest)){
100
50
 
101
51
  case EOF:
102
52
 
103
- case 0:
53
+
104
-
105
- printf("%d\n",0);
106
-
107
- fprintf(stderr,"%d:%s",n,line);break;
108
-
109
- case 1:
110
-
111
- printf("%d\n",x);break;
112
-
113
- case 2:
114
54
 
115
55
  printf("%d\n",x);
116
56