ページ 11

読み飛ばしと削除

Posted: 2015年1月22日(木) 00:34
by zero11
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: 読み飛ばしと削除

Posted: 2015年1月22日(木) 00:42
by みけCAT
こんな感じでしょうか?

コード:

#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;
}

Re: 読み飛ばしと削除

Posted: 2015年1月22日(木) 01:41
by zero11
返信ありがとうございます.参考にさせていただきます.

Re: 読み飛ばしと削除

Posted: 2015年1月22日(木) 02:32
by zero11
何度もすみません.50行目から最終行を読み飛ばしを追加はできますか?

Re: 読み飛ばしと削除

Posted: 2015年1月22日(木) 08:28
by みけCAT
C言語はチューリング完全なので、チューリングマシンでできる多くのことはできます。
入力の24行目以降が未定義なので詳しいことはわかりませんが、49行目を読み込んだ時点で読み込みを終了すればいいと思います。