OpenFOAMのデータ処理に困っています!C言語でプログラムを書いているのですが,1行目から22行目までは読み飛ばして,また,"(" と ")"は削除して数値だけ読み込むプログラムが書けません.
どなたかこれを解決する方法を教えていただけないでしょうか。文章が理解しにくいよろしくお願いします.
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.1 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0.001";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField nonuniform List<vector>
512500
(
(4.37815 0.0569557 -0.00416304)
...
読み飛ばしと削除
Re: 読み飛ばしと削除
こんな感じでしょうか?
#include <stdio.h>
int main(void) {
static char buffer[1000000];
int i;
double num1,num2,num3;
/* 1行目から22行目までは読み飛ばす */
for(i=0;i<22;i++) {
fgets(buffer,sizeof(buffer),stdin);
}
/* "(" と ")"は削除して数値だけ読み込む */
while(scanf("(%lg%lg%lg)",&num1,&num2,&num3)==3) {
printf("%f %f %f\n",num1,num2,num3);
}
return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 読み飛ばしと削除
C言語はチューリング完全なので、チューリングマシンでできる多くのことはできます。
入力の24行目以降が未定義なので詳しいことはわかりませんが、49行目を読み込んだ時点で読み込みを終了すればいいと思います。
入力の24行目以降が未定義なので詳しいことはわかりませんが、49行目を読み込んだ時点で読み込みを終了すればいいと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)