1

10000 行 1000 列のデータ ファイル。行全体を配列に保存するか、各列をバリアントに保存したいと考えています。

Cには標準関数fscanfがあります。この関数を使うとフォーマットを1000回書く必要があります。

fscanf(pFile, "%f,%f,%f,%f,%f,%f,......", &a[0], &a[1],...,a[999]);

このようなことは、C でプログラミングする場合にはほとんど不可能です。しかし、C 言語でそれを実装する考えはありません。提案や解決策はありますか?

また、列データの一部を読み取ったり抽出したりする方法は?

4

2 に答える 2

1

を使用してファイルを 1 行fgets()ずつ適切な大きさのバッファーに読み込みます。すべてのフィールドが確実に収まるように、32 KB 程度のバッファを使用することを恐れないでください。

次に、おそらくstrtok()orを使用して、ループ内の行を解析しますstrtod()。後者は、数値と見なされなかった最初の文字へのポインターを返すことに注意してください。ここで、次の番号の解析が続行されます。おそらく、空白を「食べる」ために内部ループを追加する必要があります(または任意のセパレーター)。

于 2013-01-08T08:13:30.640 に答える
0

ファイルを 1 行ずつ読み取り、ループ内で数値を抽出することができます。

于 2013-01-08T08:11:34.230 に答える