c言語についての質問です
c言語についての質問です。あるdatファイルに振幅と時間のデータが保存されています。
このdatファイルを読み込み振幅の最大値を求めてから振幅の2割の値を求めます。
そこから再度読み込み振幅の2割を超える時間まで読み込み越えた際の時間を出力したいのですが上手くいきません。途中がけのプログラムをのせるのでお願いします。
datファイルには
時間 振幅
時間 振幅
…
のようになっています。
#include <stdio.h>
#include <math.h>
int main(void) {
const char * fname = "C1rbc1(50,0)sq,almi00001.dat";
char line[BUFSIZ];
double amp, time,arrival, max=0,max20;
FILE *fp = fopen(fname, "r");
while (fgets(line, BUFSIZ, fp)) {
sscanf(line, "%lf%lf", &time, &);
if (amp > max) {
max = amp;
max20=max*0.2;
}
}
fclose(fp);
printf("max: %.7lf\n", max);
printf("0,2*max:%.7lf\n",max20);
int main(void) {
FILE *fp =fopen(fname,"r");
while (fgets(line, BUFSIZ, fp)){
sscanf(line,"%lf%lf",&time,&);
if(amp>max20){
arrival=time;
break;
}
}
fclose(fp);
printf("arrival:%.7lf\n",arrival);
return 0;
}
}
お礼
いろいろと言葉足らずなところがありまして 質問の趣旨をあまり伝えることができなくてすいません。 ですが、驚くべきことに質問者さんは 私が知りたかった答え的な回答ドンピシャでしたww この回答を見て 私の使ってるlinuxではstdio.hの中にはほとんど宣言がないので いろいろ探してみたところ、 bits/stdio_lim.hにFOPEN_MAX 16があり libio.hにIO_FILE_ という構造体が宣言されているんで あまり自信ないですがたぶんこれがファイルのデータを格納する構造体だと思います。 ありがとうございました。