質問編集履歴
2
コメントありがとうございます。コマンドラインの打つのはわかりましたがまたエラーになってしまいました。超初心者なので変なところで間違えているかもしれません。よろしくお願いします。
test
CHANGED
File without changes
|
test
CHANGED
@@ -12,13 +12,19 @@
|
|
12
12
|
|
13
13
|
``
|
14
14
|
|
15
|
-
|
15
|
+
アドバイスをくださった方々ありがとうございます
|
16
16
|
|
17
|
-
|
17
|
+
gcc ファイル名.c でコンパイルすると無事にコンパイルできて、
|
18
18
|
|
19
|
-
|
19
|
+
./a.exe C:sample11-1.txt
|
20
20
|
|
21
|
-
|
21
|
+
と打ったのですが反応がありません
|
22
|
+
|
23
|
+
(何も表示せずにプログラムが終わってしまっています)
|
24
|
+
|
25
|
+
コマンドライン引数でもらったデータをcharに変換することができていないのかもと思いますが調べてもよく分かりませんでした。
|
26
|
+
|
27
|
+
|
22
28
|
|
23
29
|
|
24
30
|
|
@@ -40,7 +46,7 @@
|
|
40
46
|
|
41
47
|
|
42
48
|
|
43
|
-
int main(int argc, char argv
|
49
|
+
int main(int argc, char *argv) {
|
44
50
|
|
45
51
|
if (argc != 2) { printf("使用法: %s <文字列>\n", argv[0]); return 1; }
|
46
52
|
|
@@ -50,11 +56,13 @@
|
|
50
56
|
|
51
57
|
FILE *fp;
|
52
58
|
|
59
|
+
char *filename;
|
60
|
+
|
53
|
-
|
61
|
+
*filename = argv[1];
|
54
62
|
|
55
63
|
fp = fopen(filename, "r");
|
56
64
|
|
57
|
-
if (fp == NULL) { printf("ファイル%sが開けません.\n", filename); return 1; } ー
|
65
|
+
if (fp == NULL) { printf("ファイル%sが開けません.\n", filename); return 1; } //ファイルオープンのエラー
|
58
66
|
|
59
67
|
for (n = 0; n < MAX_DATA; n++) {
|
60
68
|
|
@@ -82,17 +90,7 @@
|
|
82
90
|
|
83
91
|
|
84
92
|
|
85
|
-
|
86
|
-
|
87
|
-
コンパイルの際は gcc ファイル名.c C:\sample11-1.txt と打ちましたが、
|
88
|
-
|
89
|
-
C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe:C:\sample11-1.txt: file format not recognized; treating as linker script
|
90
|
-
|
91
|
-
C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe:C:\sample11-1.txt:1: syntax error
|
92
|
-
|
93
|
-
collect2.exe: error: ld returned 1 exit status
|
94
|
-
|
95
|
-
と表示されてコンパイルができませんでした。
|
93
|
+
./a.exe C:\sample11-1.txt で打ちました
|
96
94
|
|
97
95
|
|
98
96
|
|
1
不慣れな質問で申し訳ありません。ソースコードをはりました。よろしくお願いします。
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,6 +30,50 @@
|
|
30
30
|
|
31
31
|
ソースコード
|
32
32
|
|
33
|
+
#include <stdio.h>
|
34
|
+
|
35
|
+
#include <stdlib.h>
|
36
|
+
|
37
|
+
#include <string.h>
|
38
|
+
|
39
|
+
#define MAX_DATA 1000
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
int main(int argc, char argv[]) {
|
44
|
+
|
45
|
+
if (argc != 2) { printf("使用法: %s <文字列>\n", argv[0]); return 1; }
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
char buf[256]; double weight[5]; double sum; int i, n; sum = 0;
|
50
|
+
|
51
|
+
FILE *fp;
|
52
|
+
|
53
|
+
char *filename = "argv[2]";
|
54
|
+
|
55
|
+
fp = fopen(filename, "r");
|
56
|
+
|
57
|
+
if (fp == NULL) { printf("ファイル%sが開けません.\n", filename); return 1; } ー
|
58
|
+
|
59
|
+
for (n = 0; n < MAX_DATA; n++) {
|
60
|
+
|
61
|
+
if (fgets(buf, 256, fp) == NULL) break;
|
62
|
+
|
63
|
+
weight[n] = atof(buf);
|
64
|
+
|
65
|
+
sum += weight[n];
|
66
|
+
|
67
|
+
}
|
68
|
+
|
69
|
+
fclose(fp);
|
70
|
+
|
71
|
+
printf("平均 = %5.1lf\n", sum/5);
|
72
|
+
|
73
|
+
return 0;
|
74
|
+
|
75
|
+
}
|
76
|
+
|
33
77
|
```
|
34
78
|
|
35
79
|
|
@@ -38,7 +82,17 @@
|
|
38
82
|
|
39
83
|
|
40
84
|
|
41
|
-
|
85
|
+
textファイルの保存場所を変えて試してみました。
|
86
|
+
|
87
|
+
コンパイルの際は gcc ファイル名.c C:\sample11-1.txt と打ちましたが、
|
88
|
+
|
89
|
+
C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe:C:\sample11-1.txt: file format not recognized; treating as linker script
|
90
|
+
|
91
|
+
C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe:C:\sample11-1.txt:1: syntax error
|
92
|
+
|
93
|
+
collect2.exe: error: ld returned 1 exit status
|
94
|
+
|
95
|
+
と表示されてコンパイルができませんでした。
|
42
96
|
|
43
97
|
|
44
98
|
|
@@ -46,4 +100,4 @@
|
|
46
100
|
|
47
101
|
|
48
102
|
|
49
|
-
|
103
|
+
Visual studio code を使っています。
|