質問編集履歴

2

コメントありがとうございます。コマンドラインの打つのはわかりましたがまたエラーになってしまいました。超初心者なので変なところで間違えているかもしれません。よろしくお願いします。

2021/01/20 22:44

投稿

ys003
ys003

スコア1

test CHANGED
File without changes
test CHANGED
@@ -12,13 +12,19 @@
12
12
 
13
13
  ``
14
14
 
15
- file format not recognized
15
+ アドバイスをくださった方々ありがとうございます
16
16
 
17
- treating as linker script
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
- char *filename = "argv[2]";
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
- 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
- と表示されてコンパイルができませんでした。
93
+ ./a.exe C:\sample11-1.txt で打ちました
96
94
 
97
95
 
98
96
 

1

不慣れな質問で申し訳ありません。ソースコードをはりました。よろしくお願いします。

2021/01/20 22:44

投稿

ys003
ys003

スコア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 使っています