![]() |
||
|
Golden Member
![]() ![]() ![]() ![]() 加入日期: Apr 2001
文章: 2,513
|
想麻煩會用 c++ 並對 I/O 有心得的朋友進來看看
需要寫一個小程式來讀取 java 或是 c++ 的 source code
並且回報一些資料 目前我覺得較有問題的是 blank line 和 function 最一開始 我是假設 blank line 都是將 '\n' 換行符號放在最前面 所以用 getline() 讀取時 只要去查位置為 [0] 的 slot 是否為 '\n' 就可以判定該行是否能為 blank line 或是我先用 getline() 先把 source code 裡面的整句丟到一個 char str[] 裡 然後逐一的把整個 array 掃過 只要在 '\n' 之前都是空白的話 那麼該行就是 blank line 另外就是 function 的判別 可能會先檢查某行的一開始是否為某種類別 接下來的 word 是否為符合規定的 char 之後是否接 ( ) 並且裡面是否有 parameter 聽起來好像是知道 algorithm 但是實際要寫 pseudo-code 的時候有困難 希望聽聽大家意見 如果有更好的方法也麻煩指教 謝謝 |
|||||||
|
|
|
Advance Member
![]() ![]() 加入日期: Jun 2003 您的住址: Taipei
文章: 442
|
可以用 regular expression 處理.
1.開頭到 \n 之間有且全都是 0~n 個空白,這行就是可以忽略的. 2.function 也大都有 "void xxx() {" 這樣的特徵,只要找到特徵,再用 regular expression 去判斷就行囉!
__________________
現今世道,自爆文當故事書,站長的話做成語錄,幾百年前的文章嘛沒事就挖出來考古...
|
||
|
|
|
Golden Member
![]() ![]() ![]() ![]() 加入日期: Apr 2001
文章: 2,513
|
引用:
你好 不知道是否有在 c++ 上使有 re 的一些文章可供參考 之前有唸過 re 可是只是完全在紙上作業的 沒有應到用 coding 用 所以要怎麼嵌入還有點沒有頭緒 |
|
|
|
|
Advance Member
![]() ![]() 加入日期: Jun 2003 您的住址: Taipei
文章: 442
|
c/c++ 上的 RE 我也沒有什麼經驗,大多是在 Java 和 Python 上使用.
您可以看一下 Boost C++ Library(http://www.boost.org),它有提供常規表示式的函式/類別庫!
__________________
現今世道,自爆文當故事書,站長的話做成語錄,幾百年前的文章嘛沒事就挖出來考古...
|
|
|