質問編集履歴
2
コメントありがとうございます。コマンドラインの打つのはわかりましたがまたエラーになってしまいました。超初心者なので変なところで間違えているかもしれません。よろしくお願いします。
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,11 +5,14 @@
|
|
5
5
|
### 発生している問題・エラーメッセージ
|
6
6
|
|
7
7
|
``
|
8
|
-
|
8
|
+
アドバイスをくださった方々ありがとうございます
|
9
|
+
gcc ファイル名.c でコンパイルすると無事にコンパイルできて、
|
9
|
-
|
10
|
+
./a.exe C:sample11-1.txt
|
10
|
-
と
|
11
|
+
と打ったのですが反応がありません
|
11
|
-
|
12
|
+
(何も表示せずにプログラムが終わってしまっています)
|
13
|
+
コマンドライン引数でもらったデータをcharに変換することができていないのかもと思いますが調べてもよく分かりませんでした。
|
12
14
|
|
15
|
+
|
13
16
|
### 該当のソースコード
|
14
17
|
|
15
18
|
```c言語
|
@@ -19,14 +22,15 @@
|
|
19
22
|
#include <string.h>
|
20
23
|
#define MAX_DATA 1000
|
21
24
|
|
22
|
-
int main(int argc, char argv
|
25
|
+
int main(int argc, char *argv) {
|
23
26
|
if (argc != 2) { printf("使用法: %s <文字列>\n", argv[0]); return 1; }
|
24
27
|
|
25
28
|
char buf[256]; double weight[5]; double sum; int i, n; sum = 0;
|
26
29
|
FILE *fp;
|
30
|
+
char *filename;
|
27
|
-
|
31
|
+
*filename = argv[1];
|
28
32
|
fp = fopen(filename, "r");
|
29
|
-
if (fp == NULL) { printf("ファイル%sが開けません.\n", filename); return 1; } ー
|
33
|
+
if (fp == NULL) { printf("ファイル%sが開けません.\n", filename); return 1; } //ファイルオープンのエラー
|
30
34
|
for (n = 0; n < MAX_DATA; n++) {
|
31
35
|
if (fgets(buf, 256, fp) == NULL) break;
|
32
36
|
weight[n] = atof(buf);
|
@@ -40,12 +44,7 @@
|
|
40
44
|
|
41
45
|
### 試したこと
|
42
46
|
|
43
|
-
|
44
|
-
コンパイルの際は gcc ファイル名.c C:\sample11-1.txt と打ちましたが、
|
45
|
-
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
|
46
|
-
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
|
47
|
-
collect2.exe: error: ld returned 1 exit status
|
48
|
-
と表示されてコンパイルができませんでした。
|
47
|
+
./a.exe C:\sample11-1.txt で打ちました
|
49
48
|
|
50
49
|
### 補足情報(FW/ツールのバージョンなど)
|
51
50
|
|
1
不慣れな質問で申し訳ありません。ソースコードをはりました。よろしくお願いします。
title
CHANGED
File without changes
|
body
CHANGED
@@ -14,12 +14,39 @@
|
|
14
14
|
|
15
15
|
```c言語
|
16
16
|
ソースコード
|
17
|
+
#include <stdio.h>
|
18
|
+
#include <stdlib.h>
|
19
|
+
#include <string.h>
|
20
|
+
#define MAX_DATA 1000
|
21
|
+
|
22
|
+
int main(int argc, char argv[]) {
|
23
|
+
if (argc != 2) { printf("使用法: %s <文字列>\n", argv[0]); return 1; }
|
24
|
+
|
25
|
+
char buf[256]; double weight[5]; double sum; int i, n; sum = 0;
|
26
|
+
FILE *fp;
|
27
|
+
char *filename = "argv[2]";
|
28
|
+
fp = fopen(filename, "r");
|
29
|
+
if (fp == NULL) { printf("ファイル%sが開けません.\n", filename); return 1; } ー
|
30
|
+
for (n = 0; n < MAX_DATA; n++) {
|
31
|
+
if (fgets(buf, 256, fp) == NULL) break;
|
32
|
+
weight[n] = atof(buf);
|
33
|
+
sum += weight[n];
|
34
|
+
}
|
35
|
+
fclose(fp);
|
36
|
+
printf("平均 = %5.1lf\n", sum/5);
|
37
|
+
return 0;
|
38
|
+
}
|
17
39
|
```
|
18
40
|
|
19
41
|
### 試したこと
|
20
42
|
|
21
|
-
|
43
|
+
textファイルの保存場所を変えて試してみました。
|
44
|
+
コンパイルの際は gcc ファイル名.c C:\sample11-1.txt と打ちましたが、
|
45
|
+
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
|
46
|
+
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
|
47
|
+
collect2.exe: error: ld returned 1 exit status
|
48
|
+
と表示されてコンパイルができませんでした。
|
22
49
|
|
23
50
|
### 補足情報(FW/ツールのバージョンなど)
|
24
51
|
|
25
|
-
|
52
|
+
Visual studio code を使っています。
|