2017-10-13 8 views
0

私はテキストファイルから読み込み、入力を2次元配列に格納しなければならないCプログラミング割り当てを持っています。しかし、テキストファイルには行列のみが含まれ、行と列に関する情報は格納されません。私のプログラムは複数の入力でテストされるので、2次元配列は固定サイズではありません。しかし、この行列は正方形であることが保証されています。私は数時間ネットを検索してきましたが、解決策は思い付きませんでした。では、この行列をいくつかの入力ファイルでテストしたときに動的次元を持つ2次元配列にどのように格納できますか?寸法を知らずに2次元配列を宣言するにはどうすればいいですか?

+0

各行はファイルの別々の行にありますか? –

+2

ファイルが正方行列であることが保証されている場合は、最初の行を読み取ってどこかに格納し、最初の行に含まれる項目の数を数えます。あなたはあなたのサイズを持っているし、新しく作成された行列にあなたが保存した最初の行を含むすべてのデータを入れてください。 – McNight

+1

最初にテキストファイルを読み、次元数を決定してから、配列を宣言してから、テキストファイルをもう一度読み込んでデータを取得しますか? –

答えて

1

注:これは宿題のようです。そのため、直接コードは掲載しません。

あなたの行列は正方であることが保証あるので、それはあなたがとして列の同じ番号を持つことを意味します。つまり、行数を知るためには最初の行をスキャンするだけです。必要な列の数。

行列が.csv(カンマ区切り変数)ファイルに格納されるとします。あなたのデータは

n1, n2

n3, n4

単にあなたが行の終了前を見つける区切り文字どのように多くを数え、プレーンテキストとしてファイルを読んでいます。この場合、最初の行に1つのカンマが見つかりました。これは明らかに2つのエントリを持ち、したがって2つの列と2つの行を持つことを意味します。 3つのカンマがある場合は、4つのエントリと4つの列×4つの行があります。そこからn13, n14, n15, n16

n9, n10, n11, n12

n5, n6, n7, n8

n1, n2, n3, n4

は、あなただけのmallocにあなただけの計算サイズのn個のアレイによるn個を持っています。

関連する問題