小弟新手最近剛開始入門程式 學C語言
之前想到寫計算機程式 要怎麼輸入算式 做加減乘除
一開始還在想要怎麼判讀算式裡面字串中有哪些數字與算符
再用switch case去分類運算 不過這樣搞得好像很複雜....
明明程式裡面 變數賦值等號後面就可以簡單做運算
要怎麼把輸入的算式編到程式裡???
後來看到某個網站 原來有這樣搞法....
用fprintf先產生一個臨時的.c原始碼檔 把算式當成參數寫進去...
然後用system系統指令編譯這臨時.c檔並執行 ....原來可以這麼簡單orz
想了好幾天的迷惑終於解開了 也分享給跟我想一樣問題的新手...
http://ideone.com/TMgjSC (參考範例)
作者:
c910335 (達人)
2015-02-02 11:48:00把GCC一起編進去(選我正解
作者:
bigpigbigpig (To littlepig with love)
2015-02-02 11:51:00要這樣玩,直接用Python的eval()就搞定,不是更快?
你說的 "明明...簡單做運算" 的東西就是這麼不簡單...
1.真的要寫這樣的功能非常不簡單2.這種偷吃步的方法其實對任何人幫助都不大
作者:
Qbsuran (Qbsuran)
2015-02-02 12:08:00真的有興趣就看bc這個指令的原始碼還有計算機功能不是簡單的事 扯到資料結構前中後序
作者:
CaptainH (Cannon)
2015-02-02 13:40:00還需要一點lexer的技巧
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2015-02-02 14:40:00前中後序真的神煩, 一般入門應該最多只會教到 RPN 計算
作者:
bigpigbigpig (To littlepig with love)
2015-02-02 14:51:00我用 BASIC 寫過一次,Google 中序轉後序運算式求值
感謝樓上前輩們的關鍵字 這真的有很多東西得學...
作者:
EdisonX (卡卡獸)
2015-02-03 21:37:00我專案沒碰到 python 的話這輩子大概也不會碰了吧 Orz
我自己系上寫過一個 後序計算機是最直觀最好寫的但是要的背景知識稍閒深了點但其實實作計算機也有不用資結的方法 想法大概是a + b * c / d - e 先寫出abcde string to number然後掌握先乘除後加減OOPS我好像搞錯性質了 以為單純疑問 當我沒說話=p