質問編集履歴

3

写真の追加

2022/07/05 01:59

投稿

cube2413
cube2413

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- ヴィジュアルスタジオで「ハンドルされない例外が 0x00007FFC2088AFEC (ucrtbased.dll) で発生しました(ConsoleApplication1.exe 内): 無効なパラメーターを致命的と見なす関数に無効なパラメーターが渡されました。」という表示がでるのですが何が原因かわからないです。教えていただけますでしょうか。
1
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-05/0429e1c9-59a2-469e-9d50-04126dac4bbb.png)ヴィジュアルスタジオで「ハンドルされない例外が 0x00007FFC2088AFEC (ucrtbased.dll) で発生しました(ConsoleApplication1.exe 内): 無効なパラメーターを致命的と見なす関数に無効なパラメーターが渡されました。」という表示がでるのですが何が原因かわからないです。教えていただけますでしょうか。
2
2
  コード全体です。
3
3
 
4
4
  #ifdef WIN32

2

コードの更新

2022/07/05 01:59

投稿

cube2413
cube2413

スコア0

test CHANGED
File without changes
test CHANGED
@@ -13,9 +13,9 @@
13
13
  void main()
14
14
  {
15
15
 
16
- static char* inptfl = "input.csv"; /* simu1ation input*/
16
+ static char inptfl[] = "input.csv"; /* simu1ation input*/
17
- static char* ouptfl = "output.csv"; /*simulation output*/
17
+ static char ouptfl[] = "output.csv"; /*simulation output*/
18
-
18
+
19
19
  //definition
20
20
  FILE* finp;
21
21
  FILE* fotp;
@@ -32,14 +32,12 @@
32
32
 
33
33
  //出力ファイルを開く処理
34
34
 
35
- err = fopen_s(&fotp, ouptfl, "r");
35
+ err = fopen_s(&finp, inptfl, "r");
36
36
  if (err != 0)
37
37
  {
38
- printf("cannot poen output file \n\n");
38
+ printf("cannot open input file \n\n");
39
39
  exit(1);
40
40
  }
41
-
42
-
43
41
 
44
42
  err = fopen_s(&fotp, ouptfl, "w");
45
43
  if (err != 0)
@@ -49,7 +47,6 @@
49
47
  }
50
48
 
51
49
  // 0.初期値入力
52
- finp = 0;
53
50
  fgets(buf, 500, finp);
54
51
  fgets(buf, 500, finp);
55
52
 

1

コード全体貼り付けましました。

2022/06/30 10:19

投稿

cube2413
cube2413

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,5 @@
1
1
  ヴィジュアルスタジオで「ハンドルされない例外が 0x00007FFC2088AFEC (ucrtbased.dll) で発生しました(ConsoleApplication1.exe 内): 無効なパラメーターを致命的と見なす関数に無効なパラメーターが渡されました。」という表示がでるのですが何が原因かわからないです。教えていただけますでしょうか。
2
+ コード全体です。
2
3
 
3
4
  #ifdef WIN32
4
5
  #define CRT_SECURE_NO_WARNIGS //scanfなどの警告抑制
@@ -9,25 +10,37 @@
9
10
  #include <stdio.h>
10
11
  #include <math.h>
11
12
 
12
- void main()
13
+ void main()
13
- {
14
+ {
14
15
 
15
16
  static char* inptfl = "input.csv"; /* simu1ation input*/
16
17
  static char* ouptfl = "output.csv"; /*simulation output*/
17
-
18
+
18
- //definition![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-06-30/324c6eb8-4be5-41f5-b379-bbe14e1940f1.png)
19
+ //definition
19
20
  FILE* finp;
20
21
  FILE* fotp;
21
22
  int err;
22
23
  char buf[500];
23
24
 
24
- int i, ndat = 8 , k, kk, nsteop= 2046;
25
+ int i, ndat = 8, k, kk, nsteop = 2046;
25
- double data_old [8], data[8], X0, Y0, xx, yy, YY, XX, hd, lf;
26
+ double data_old[8], data[8], X0, Y0, xx, yy, YY, XX, hd;
26
- double dt = 0.1, M_PI = 3.141592653589793 ;
27
+ double dt = 0.1, M_PI = 3.141592653589793;
27
28
 
28
29
  printf(" ConsoleApplication1 \n\n");
29
30
 
31
+
32
+
30
33
  //出力ファイルを開く処理
34
+
35
+ err = fopen_s(&fotp, ouptfl, "r");
36
+ if (err != 0)
37
+ {
38
+ printf("cannot poen output file \n\n");
39
+ exit(1);
40
+ }
41
+
42
+
43
+
31
44
  err = fopen_s(&fotp, ouptfl, "w");
32
45
  if (err != 0)
33
46
  {
@@ -38,8 +51,46 @@
38
51
  // 0.初期値入力
39
52
  finp = 0;
40
53
  fgets(buf, 500, finp);
54
+ fgets(buf, 500, finp);
41
55
 
42
56
  for (i = 0;i <= ndat;i++)//ndat=8
43
57
  {
44
- fscanf_s(finp,"%lf,",&data_old[i]); //old --> 1行前のデータ
58
+ fscanf_s(finp, "%lf,", &data_old[i]); //old --> 1行前のデータ
45
59
 
60
+ }
61
+
62
+ //緯度経度の初期値 X0,Y0
63
+ X0 = data_old[2];
64
+ Y0 = data_old[1];
65
+
66
+ for (k = 1, k <= nsteop; k++;)
67
+ {
68
+ kk = k;
69
+
70
+ // 1. data input データ入力
71
+
72
+ for (i = 1; i <= ndat; i++) //ndat=8
73
+ {
74
+ fscanf_s(finp, "%lf,", &data[i]); // &を忘れずに %lf, 倍精度
75
+ }
76
+
77
+ // 2. compute heading 方位角の計算
78
+
79
+ hd = data_old[3] + (-data[5]) * dt;
80
+
81
+ // 3. compute longitude latitude 経度緯度の計算(m)
82
+
83
+ xx = data_old[2] + data[4] * dt * sin(data_old[3] * M_PI / 180.0); // 経度x (m) M_PI 後で定義 3.14
84
+ yy = data_old[1] + data[4] + dt * cos(data_old[3] * M_PI / 180.0); // 緯度y (m)
85
+
86
+ // 4, compute longitude latitude too degree 経度緯度をdegに変換
87
+
88
+ YY = data[1] / (111111.0 + Y0); // Y (deg)
89
+ XX = data[2] / (111111.0 * cos(YY * M_PI / 180.0)) + X0; // X (deg)
90
+
91
+ // 5. out put データ出力
92
+
93
+ fprintf_s(fotp, "%lf, %lf, %lf, %lf, %lf, %lf, %lf, %lf, \n", data[0], data[5], data[4], hd, xx, yy, XX, YY);
94
+ }
95
+
96
+ }