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

回答編集履歴

1

追記

2021/08/30 15:08

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -13,4 +13,35 @@
13
13
  なぜ、10倍して 9で割っているのですか?
14
14
 
15
15
  また、ファイル名が、input.txt と output.txt に固定で、
16
- コマンドラインの引数で指定することができていません。
16
+ コマンドラインの引数で指定することができていません。
17
+
18
+ **追記**
19
+ > ・読み込み/書き出しのファイルを実行する時にargc,argvを用いて
20
+ ```C
21
+ #include <stdio.h>
22
+
23
+ int main(int argc, char *argv[])
24
+ {
25
+ //・引数の数のチェックをして足りないときはusageを表示して終了、
26
+ if (argc < 3) {
27
+ printf("usage: %s in_file out_file\n", argv[0]); return 3;
28
+ }
29
+
30
+ // 引数で受け取ったファイル名は別変数にコピーしてargvのまま用いない
31
+ char *ifile = argv[1], *ofile = argv[2];
32
+
33
+ FILE *fp1 = fopen(ifile, "r");
34
+ if (fp1 == NULL) { printf("can't open %s\n", ifile); return 1; }
35
+ // データの読み込み
36
+ fclose(fp1);
37
+
38
+ // 計算
39
+
40
+ FILE *fp2 = fopen(ofile, "w");
41
+ if (fp2 == NULL) { printf("can't create %s\n", ofile); return 2; }
42
+ // 計算結果の書き出し
43
+ fclose(fp2);
44
+
45
+ return 0;
46
+ }
47
+ ```