看板 C_and_CPP 關於我們 聯絡資訊
小弟新手最近剛開始入門程式 學C語言 之前想到寫計算機程式 要怎麼輸入算式 做加減乘除 一開始還在想要怎麼判讀算式裡面字串中有哪些數字與算符 再用switch case去分類運算 不過這樣搞得好像很複雜.... 明明程式裡面 變數賦值等號後面就可以簡單做運算 要怎麼把輸入的算式編到程式裡??? 後來看到某個網站 原來有這樣搞法.... 用fprintf先產生一個臨時的.c原始碼檔 把算式當成參數寫進去... 然後用system系統指令編譯這臨時.c檔並執行 ....原來可以這麼簡單orz 想了好幾天的迷惑終於解開了 也分享給跟我想一樣問題的新手... http://ideone.com/TMgjSC (參考範例) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.234.129.24 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1422847728.A.CA1.html
dearlove: 然後遇到沒裝gcc的電腦就爆了 02/02 11:34
c910335: 把GCC一起編進去(選我正解 02/02 11:48
bigpigbigpig: 要這樣玩,直接用Python的eval()就搞定,不是更快? 02/02 11:51
ljsnonocat2: 還沒學到Python 剛碰程式的新手留... 02/02 11:53
Ebergies: 你說的 "明明...簡單做運算" 的東西就是這麼不簡單... 02/02 12:02
azureblaze: 1.真的要寫這樣的功能非常不簡單 02/02 12:08
azureblaze: 2.這種偷吃步的方法其實對任何人幫助都不大 02/02 12:08
Qbsuran: 真的有興趣就看bc這個指令的原始碼 02/02 12:08
Qbsuran: 還有計算機功能不是簡單的事 扯到資料結構前中後序 02/02 12:10
ljsnonocat2: 感謝樓上 我研究看看 02/02 12:21
CaptainH: 還需要一點lexer的技巧 02/02 13:40
uranusjr: 前中後序真的神煩, 一般入門應該最多只會教到 RPN 計算 02/02 14:40
bigpigbigpig: 我用 BASIC 寫過一次,Google 中序轉後序運算式求值 02/02 14:51
MOONRAKER: 還沒學到python咧 你有可能學四年都學不到 02/02 14:58
ljsnonocat2: 感謝樓上前輩們的關鍵字 這真的有很多東西得學... 02/02 15:10
EdisonX: 我專案沒碰到 python 的話這輩子大概也不會碰了吧 Orz 02/03 21:37
qas612820704: 我自己系上寫過一個 後序計算機是最直觀最好寫的 02/09 15:25
qas612820704: 但是要的背景知識稍閒深了點 02/09 15:25
qas612820704: 但其實實作計算機也有不用資結的方法 想法大概是 02/09 15:27
qas612820704: a + b * c / d - e 先寫出abcde string to number 02/09 15:32
qas612820704: 然後掌握先乘除後加減 02/09 15:33
qas612820704: OOPS我好像搞錯性質了 以為單純疑問 當我沒說話=p 02/09 15:37