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

質問編集履歴

2

ソースコードについてはsegmentation faultを解決しようとしてvevtorを使ってみたものです.

2015/07/14 14:40

投稿

oohata_mk3
oohata_mk3

スコア12

title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,11 @@
7
7
  と出てしまいました.
8
8
  これを解決したいのですが,どのようにすればいいでしょうか?
9
9
 
10
+ 追記
11
+ segmentation faultを解決しようとしてvectorを使ってみたのですが,
12
+ ”note : template argument deduction/substitution failed :”
13
+ というエラーが出てしまいました.
14
+
10
15
  ```lang-c++
11
16
  #include <stdio.h>
12
17
  #include <vector>

1

ソースコードを載せました.初心者でお見苦しいかと思いますがよろしくお願いします.

2015/07/14 14:40

投稿

oohata_mk3
oohata_mk3

スコア12

title CHANGED
File without changes
body CHANGED
@@ -5,4 +5,101 @@
5
5
  データ点数が多くなってしまったからなのか,
6
6
  ”segmentation foult”
7
7
  と出てしまいました.
8
- これを解決したいのですが,どのようにすればいいでしょうか?
8
+ これを解決したいのですが,どのようにすればいいでしょうか?
9
+
10
+ ```lang-c++
11
+ #include <stdio.h>
12
+ #include <vector>
13
+ using namespace std;
14
+
15
+ int main()
16
+ {
17
+ int nlin=0 , header=17;
18
+ int i,cnt,c,n;
19
+ vector<double> x1[cnt],x2[xnt],x3[cnt],x4[cnt];
20
+ double sum1,sum2,sum3,sum4;
21
+ double I1,I2,I3,I4;
22
+ double I1_,I2_,I3_,I4_;
23
+ double dt=0.0000001;
24
+ char bff[100];
25
+ FILE* fp;
26
+ FILE* save;
27
+ FILE* gp;
28
+ char fname[]={"file[n].csv"};
29
+ char save_fname[]={"save[n].csv"};
30
+
31
+ //file loop
32
+ for(n=0 ; n<=cnt ; n++)
33
+ {
34
+
35
+ //line count part
36
+ fp =fopen(fname,"r");
37
+
38
+ if(fp)
39
+ {
40
+ while(c=getc(fp)!=EOF);
41
+ {
42
+ if(c=='\n')cnt++;
43
+ }
44
+
45
+ }
46
+ printf("%d\n",cnt);
47
+
48
+ //return first line
49
+ rewind(fp); nlin=0;
50
+
51
+ //file & gnuplot open for save
52
+ save = fopen("save[n].csv","w");
53
+ gp = popen("gnuplot -persist","w");
54
+
55
+ //header cut part
56
+ while(fgets(bff,100,fp)!=NULL)
57
+ {
58
+ if(++nlin <= header)continue;
59
+ }
60
+
61
+ //calibration value ~ integrater
62
+ for(i=17 ; i<=2000 ; i++)
63
+ {
64
+ while(fscanf(fp,"%lf%lf%lf%lf",&x1[cnt],&x2[cnt],&x3[cnt],&x4[cnt])==4)
65
+ {
66
+ sum1 += x1[i];
67
+ sum2 += x2[i];
68
+ sum3 += x3[i];
69
+ sum4 += x4[i];
70
+ }
71
+ }
72
+ for(i=17 ; i<=cnt ; i++)
73
+ {
74
+ //first point at each column
75
+ I1_= (x1[17] - sum1) * dt;
76
+ I2_= (x2[17] - sum2) * dt;
77
+ I3_= (x3[17] - sum3) * dt;
78
+ I4_= (x4[17] - sum4) * dt;
79
+
80
+ //second ~ final point at 4each column
81
+ I1 = I1_ + (x1[i+1] - sum1) * dt;
82
+ I2 = I2_ + (x2[i+1] - sum2) * dt;
83
+ I3 = I3_ + (x3[i+1] - sum3) * dt;
84
+ I4 = I4_ + (x4[i+1] - sum4) * dt;
85
+
86
+ //writing part on file
87
+ fprintf(save,"%f \t %f \t %f \t %f \n",I1_,I2_,I3_,I4_);
88
+ fprintf(save,"%f \t %f \t %f \t %f \n",I1,I2,I3,I4);
89
+
90
+ fprintf(gp,"plot %f with lines \n",I1);
91
+ fprintf(gp,"plot %f with lines \n",I2);
92
+ fprintf(gp,"plot %f with lines \n",I3);
93
+ fprintf(gp,"plot %f with lines \n",I4);
94
+ }
95
+
96
+
97
+ pclose(gp);
98
+ fclose(save);
99
+ fclose(fp);
100
+ }
101
+ return 0;
102
+ }
103
+
104
+ コード
105
+ ```