2013-10-21 123 views
0

需要量閱讀文本文件忽略註釋

我有一個txt文件,它看起來像這樣。

START: 
#INCLUDE "INC1.txt" 
#INCLUDE "INC2.txt" 
END 

當我運行我的程序時,它應該包含包含文件和轉儲文件中的內容。傾銷後它看起來像這樣。

START: 
<Contents of INC1.txt> 
<Contents of INC2.txt> 
END: 

問題

我所面臨的問題是,如果用戶給出了包括註釋(/ ** /)我不應該拋售這些內容。

例如,輸入文件會是這樣的。

START: 
#INCLUDE "INC1.txt" 
/******#INCLUDE "INC2.txt"**** 
This is a test message*******/ 
END: 

轉儲應該是這樣的。

START: 
<Contents of INC1.txt> 
/******#INCLUDE "INC2.txt"**** 
This is a test message*******/ 
END: 

有什麼簡單的方法可以忽略評論。我只需要支持多行註釋(/ ** /)?

請提供您的意見。

在此先感謝。

+5

您可以使用您的編譯器的預處理器(即'cc -E'?) –

+1

處理文本處理的最佳方式是使用腳本。我會建議使用PERL腳本來用幾行代碼來實現您的需求。但是,如果你想用C語言實現這個功能,你必須編寫自己的函數,或者你可以使用一些預定義的編譯器功能來刪除正在處理的輸入文件中的註釋。 – Anand

+1

註釋是否始終在行的開始和結束處開始和結束?或者序列'/ *'也出現在* data *裏面?是否應該刪除註釋結束行末尾的硬回車?是否有可能評論開始但不會結束? (在那種情況下,它是否應該「繼續」到下一個文件中? – usr2564301

回答

1

按字符讀取文件,並跟蹤當前字符和前一個。字符。當前一個字符爲/且當前字符爲*時,請停止複製前一個字符進行輸出,並且在字符爲*/之前不要開始。

或使用正則表達式。有可能是C庫,但sed可能會用最少的努力。

0

,你必須使用字符串操作,設置一個標誌,在發現「/ 」,如果標誌設置做你的評論的情況下想要的,並在發現「 /」復位標誌,設置標誌應該是前字符串操作,它應該像 1個標誌設置或正在重置 2,如果標誌設置處理它在評論 3否則你希望的方式的方式....

0

使用gcc --save與-臨時工選項,會找到沒有評論的.i文件...可能會爲您解決問題。 謝謝,Jain