2017-10-13 123 views
0

我有一個C編程任務,我必須從文本文件中讀取並將輸入存儲在二維數組中。但是文本文件只包含矩陣,不存儲有關行和列的信息。我的程序將用幾個輸入進行測試,所以二維數組不應該有固定的大小。但是這個矩陣保證是一個正方形。我一直在尋找網絡幾個小時,但無法提出解決方案。那麼如何將這個矩陣存儲在具有動態維度的二維數組中,並且在使用多個輸入文件進行測試時呢?如何在不知道維度的情況下聲明2d數組?

+0

每行是否在文件的自己單獨的行中? –

+2

如果文件保證它是一個方形矩陣,只需讀取第一行,將其存儲在某處,然後計算第一行包含的項目數。你有你的大小,然後把所有的數據(包括你剛剛存儲的第一行)放到你剛創建的矩陣中。 – McNight

+1

先讀取文本文件,確定維數,然後聲明數組,然後再次讀取文本文件以獲取數據? –

回答

1

注意:從措辭,這似乎是一個家庭作業問題。出於這個原因,我不會發布任何直接的代碼。

你的矩陣是保證是方形,這樣就意味着你將有相同數量的。這意味着您只需掃描第一行即可知道需要多少行數

讓我們假設您的矩陣將存儲在.csv(逗號分隔變量)文件中。您的數據是

n1, n2

n3, n4

只需讀取該文件爲純文本,計算有多少你行結束前找到分隔符。在這種情況下,您在第一行中找到了1個逗號,這顯然意味着您有2個條目,因此2列2行;如果你有3個逗號,你會有4個條目,因此4個行4個。

n1, n2, n3, n4

n5, n6, n7, n8

n9, n10, n11, n12

n13, n14, n15, n16

從那裏,你只需要通過malloc你剛纔計算的大小的N排列的n。

相關問題