2013-03-12 86 views
-1

我正在接收一個輸入文件,並帶有一堆行。 我想能夠計算行數,但也要分析它們。計算文件中的行數 - C

輸入將是許多隻有整數的代碼行。 例如:

3 2 
1 2 
2 3 
4 3 
1 2 
2 3 
3 4 

這裏是棘手的部分: 第一行有兩個數字:3和2(3是不相關的現在)。 2是非常重要的。它代表我必須閱讀和保存的行數。 因此,根據這個例子,我將不得不拯救線

1 2 
2 3 

那麼,爲什麼會有其他行? - 你問。那麼,讓我們看看這個輸入爲塊。 行3 2後我讀了兩行。所以就像這個塊一樣結束了。 但隨後,行4 3來了。這意味着我必須完成與第一個塊完全相同的操作。所以,從行4 3我現在知道我必須閱讀並保存接下來的3行。這意味着線

1 2 
2 3 
3 4 

我已經在頭山上的這一點,似乎無法找到任何可能的解決方案

+3

你試過了什麼?你讀過一本好的C編程書嗎?你看過類似免費軟件的源代碼嗎? – 2013-03-12 19:42:29

+1

嘗試先編寫一些僞代碼,忽略所有語法。這是一個構造一個相當簡單的算法的練習。 – teppic 2013-03-12 19:53:12

+0

如果你可以控制格式,我建議你選擇一種更加人性化的格式,即用'block 4'開始一個塊並用'end'結束。運行時間的差異可以忽略不計(除非它是這種東西的大寫和大寫),生成/處理過程中的錯誤更容易診斷,甚至你不那麼聰明和不小心的實習生也能夠創建文件這種格式,跳過的線條並沒有讓所有的東西完全不同步。 – vonbrand 2013-03-12 19:58:12

回答

1

當你有這樣的問題,它認爲結構是有益的第一。下面是主要算法的簡單僞代碼中的一種方法,以幫助您開始。人們不能真正的幫助,除非你提出你的代碼和問題。

declare line buffer array 

while (read a line into buffer == succeeds) { 
    scan buffer for two numbers (m, n) 
    loop how many times? { 
     read a line into buffer 
     scan buffer for next two numbers (x, y) 
    } 
} 

這不應該太難以轉化爲C.然後,您可以擴展它以存儲您掃描的數字,計算行數或其他任何內容。

一旦你有了一些代碼,如果它不起作用,你不能找出錯誤,你會得到很多幫助。