看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): 我目前正在練習台大資工系申請入學的考古題,其中一題是要做一個能四則運算的計算機 輸入範例假設是:"23 * 40 + 15 / 5 - 98 * 3",然後會依照先乘除後加減算出答案 我目前的想法,是先把輸入的算式扔到一個vector<string>裡以免除空白的困擾 然後用isdigit()把裡面的數字複製到另外一個vector<string>中 再用istringstream把這條string轉為vector<int> 最後再配合原本vector<string>裡的算數符號做計算 不過目前走到第二行就卡住了,不知為何編譯器一直告訴我string不能轉為int 我覺得我的寫法應該能避免這個問題才對 請版上各位先進替我看看問題在哪裡,感謝 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/c6JoEWop 補充說明(Supplement): 這是我找到的考古題的部落格: http://dowdow.wordpress.com/c_language/problem/ntucsie2008/ --
gcobc12632 :一樓帥哥11/04 22:52
maple0935 :二樓帥哥11/04 22:52
howar31 :二樓帥哥11/04 22:52
howar31 :..11/04 22:52
maple0935 :五樓吃屎 11/04 22:53
maple0935 :幹 可以不要當簽名檔嗎... 11/04 22:53
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.40.13.62
EdisonX:你的 init[i] 取出來的是 string , 而不是 string [i] 03/13 22:08
EdisonX:vector<string> init; init[idx][pos] , 這才是你想要的. 03/13 22:08
不好意思,init[idx][pos]這句可以再解釋的更清楚嗎? 第一行我懂,但第二行這裡看不懂 感謝
suhorng:isdigit :: char -> bool,他只能判斷某一個"位數" 03/13 22:14
suhorng:所以digit的話必須要每一位數都是0-9 03/13 22:15
意思是說,我想要他判斷"26"是不可能的,他只能判斷"2"和"6"這樣嗎?
EdisonX:簡單的說,你的 init[i] 型別是 string, 而不是 char. 03/13 22:16
還是不太懂,string和char在這邊的主要差異是什麼?我是想要用string來做沒錯
EdisonX:但 isdigit 輸入引數只能是 char , 不能是 string 03/13 22:28
奇怪,C++ Primer 4E把包括這段在內的cctype函式都放在string章節內 所以我以為能直接這樣用,還是說我沒看懂那段0.0?
suhorng:1.不是判斷"2"、"6",而是判斷'2'、'6' 你要確認每個位數. 03/13 22:37
suhorng:2.這放在string也沒有錯...但是你要看他的範例用法阿0.0 03/13 22:37
worldlet:先弄清楚 char, string 有甚麼不同以及中間的關連 03/13 22:38
worldlet:再補足對 vector 的認識,你應該就可以知道問題在哪裡了 03/13 22:39
EdisonX:字元相關函式放在字串章節還蠻正常的啊 @@ 你再復習一下吧 03/13 22:39
kyfish:講個跟這題無關的,寫code盡量保持好習慣別用中文寫註解 03/14 21:48
loveflames://連線成功 03/15 02:35
purincess: //連線成功無誤 03/15 13:46
請教一下,為何不要用中文寫註解? 我在練習程式都習慣用中文註記當下的想法及修正後的注意事項,這樣複習比較方便 中文註解會有什麼問題嗎? 還有//連線成功是什麼梗0.0? ※ 編輯: o07608 來自: 114.40.10.26 (03/15 14:28)
Caesar08:你要不要再看一次4E的內容? 03/15 15:49
Caesar08:書上是用string::size_type 03/15 15:49
Caesar08:而你卻是用vector<string>::size_type 03/15 15:49
EdisonX:中文存檔後,某些compiler對某些字再開啟後會變亂碼。 03/15 20:42
EdisonX:像是 "功" 就是其中一個字。 03/15 20:42
o07608:喔喔了解 03/16 14:13
ah7675:compiler? editor吧? 03/16 20:57
EdisonX:用錯詞彙 , 是 editor (IDE) 無誤 03/16 22:23
kyfish:不只變亂碼,重要的是compile會炸裂,//連線成功 程式的下 03/17 22:56
kyfish:一行會無條件直接被註解掉 editor compiler都不會警告你 03/17 22:57
EdisonX:@kyfish , 我記得(過去經驗)有些compiler會炸,有些不會, 03/17 23:17
EdisonX:但無論如何在 code 裡盡可能以英文撰之是共識。 03/17 23:17
ah7675:utf8+英文 跨os/editor/scm相容性最好 03/17 23:39