♥ 學習筆記Learning 程式語言 Coding

[C++程式設計] 學習筆記─讀取檔案與輸入(1/2)

這次我寫程式,完全是為了完成屬於我自己的專案!所以,每一個項目,也就根據我的需求而設,請大家不要當做一招萬用的定理啊!那去翻書比較實在!一開始,我的程式分為五個部份,第一部份是輸入讀檔、第二部份是分析資料、第三部分是演算法(演算法內部有許多細節)、第四部分是輸出檔案處理、第五部分是分析結果並得出實驗數據。
system_analysis.jpg

系統分析本身是另一種學問,在這邊我不討論,只粗淺的探討自己遇到的問題與解決問題的工具有哪些?這張圖的來源是網路,感覺還蠻棒的,希望我以後自己的個人書房有一區就這樣,用個透明的玻璃板當作我的白板,紀錄下我的思考。

當我們創造一個系統來解決問題的時候,實作過程中,我們必須不停著拆解拆解,直到每個部份都變成顯而易見的小問題為止;這一個方法是我們所熟知的Divide and Conquer策略,誠如這個策略的特性,Divide的過程往往是最重要的,只要問題分割的好,就容易找出適切的解法;因此,不必因為問題太大而就先退後一千兩百萬步,盡可能的把問題拆解,當問題拆解成小問題時,仍然無法直接想到解決方案,那代表的是你可能必須再將問題肢解的更小塊一點,直到他變得容易解決。

 

※針對讀取檔案─

Q:
我總共有三個輸入檔,分為A、B、C,其中A檔案會紀錄B與C檔名的敘述,藉由A檔案的內容得知需要讀取B、C兩檔案與其他的參數。

A:
因此,我們需要讓程式先讀取A檔案。
接著,將A檔案中的字串切成Token。
然後,依序將Token存入預先定義好的暫存Array中。
最後,再透過儲存B、C檔名的Array,呼叫出要讀取的B與C檔案。

Coding:
在開始解這個問題前,我先寫了一小段程式,只做單一檔案讀檔寫檔的測試,並確定可以將多餘的符號去掉。
20110928_Input_v1.jpg    

現在,我們要讀的不只是一段要輸出的字串,這個字串也代表的是我下一個要進行讀檔的檔名,因此我必須保留這筆資訊;我們依照前面簡單的例子來做一點點修改,前面的程式碼輸入檔為input.v,輸出檔為output.v,透過檔案串流infile與outfile,
中間使用word這個字串變數暫存,來完成讀入檔案以後,去掉空白,依序輸出;現在我們給他一個暫存的空間,儲存我們要的輸入字串,與前面程式碼不同的地方在灰藍色框框裡喔!(這些程式碼都是測試過可順利執行的喔!驗證結果時輸出了每個字串與他對應的索引值來看。^^)
20110928_Input_v2.jpg      

現在,我們要進入最後一步了,透過對應的暫存字串,再開啟我們所需要的B、C檔案。
聽起來好像很簡單,又很像不太簡單T口T”,所以Google大神發光吧!快來罩我~<(__ __)>

在光芒之下,我們找到了網友的智慧結晶:
[已解決]請問C++如何讀多個txt檔 http://www.eyny.com/archiver/tid-5586207.html 
當然,在Mobile01也有如何撰寫開啟批次檔的討論:) 我又不是天才,當然就是多看看啦!
在經過認真研究幾位大大的說詞後,我們要將程式再加入一些的修改,讓他更符合我們的需求。


嗯嗯~沒想到這篇越來越長,先點到為止囉!下一篇接著把最後一個部份寫完!待續… (被毆飛~~)

About the author

蕾咪

蕾咪,來自台東,卻不定期旅居歐洲的工程師女孩,身兼作家、部落客、創業家等多重身份。畢業於台大電子所,曾在義大利商與美商擔任研發工程師;走訪世界後,發現對台灣有段割捨不了的愛,讓我們一起努力成為想要的自己吧!:) 合作邀稿請聯繫:ramihaha@gmail.com

Leave a Comment