PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

回應
 
主題工具
paradise
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 的時候有困難

希望聽聽大家意見
如果有更好的方法也麻煩指教

謝謝
     
      
舊 2007-09-21, 05:20 AM #1
回應時引用此文章
paradise離線中  
harrisonlin
Advance Member
 
harrisonlin的大頭照
 

加入日期: Jun 2003
您的住址: Taipei
文章: 442
可以用 regular expression 處理.

1.開頭到 \n 之間有且全都是 0~n 個空白,這行就是可以忽略的.
2.function 也大都有 "void xxx() {" 這樣的特徵,只要找到特徵,再用 regular expression 去判斷就行囉!
 
__________________
現今世道,自爆文當故事書,站長的話做成語錄,幾百年前的文章嘛沒事就挖出來考古...
舊 2007-09-21, 12:30 PM #2
回應時引用此文章
harrisonlin離線中  
paradise
Golden Member
 

加入日期: Apr 2001
文章: 2,513
引用:
作者harrisonlin
可以用 regular expression 處理.

1.開頭到 \n 之間有且全都是 0~n 個空白,這行就是可以忽略的.
2.function 也大都有 "void xxx() {" 這樣的特徵,只要找到特徵,再用 regular expression 去判斷就行囉!


你好
不知道是否有在 c++ 上使有 re 的一些文章可供參考
之前有唸過 re 可是只是完全在紙上作業的 沒有應到用 coding 用
所以要怎麼嵌入還有點沒有頭緒
舊 2007-09-21, 04:31 PM #3
回應時引用此文章
paradise離線中  
harrisonlin
Advance Member
 
harrisonlin的大頭照
 

加入日期: Jun 2003
您的住址: Taipei
文章: 442
c/c++ 上的 RE 我也沒有什麼經驗,大多是在 Java 和 Python 上使用.

您可以看一下 Boost C++ Library(http://www.boost.org),它有提供常規表示式的函式/類別庫!
__________________
現今世道,自爆文當故事書,站長的話做成語錄,幾百年前的文章嘛沒事就挖出來考古...
舊 2007-09-21, 05:10 PM #4
回應時引用此文章
harrisonlin離線中  


回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是05:43 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。