[問題] cin getline 拆解輸入的問題

看板C_and_CPP (C/C++)作者 (疾風)時間15年前 (2010/07/14 22:26), 編輯推噓2(2010)
留言12則, 3人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 小弟我很久沒摸程式,C++也不算是非常熟 想請問一下有關將輸入的string拆解的方法 我現在要寫的程式可以的輸入有 純數字 字串+數字 純字串 (ACM-101) 我想讓輸入格式固定(字串開頭一定是字母) 例如可以輸入 5 or 10 abc 123 or abc 123 bcd 456 abc or cde 我目前的想法是先用 getline 把全部的輸入放到一個string 然後再去判斷是哪種情形 我想讓輸入格式固定(字串開頭一定是字母) 所以只要判斷是字串還是數字再去執行下面的步驟 C++裡面有可將全部的string一次讀出一小段子字串 再去判斷是否為數字或是字串的功能嗎? 我有稍微看了一下線上cplusplus的reference 但是找不到我想要的功能 string轉int的部分我想說可以用atoi 但是如果沒辦法順利的將子字串分解並判斷 就真的不知道下一步怎麼處理比較好 -------------------------------------------- C++算是半新手接近全新,用C++ Primer自學 + 寫ACM 請大家多多指教 謝謝 -- 我不是宅 我只是比較居家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.7.69

07/14 22:43, , 1F
stringstream 應該可以
07/14 22:43, 1F

07/14 22:47, , 2F
http://0rz.tw/WpmhT 這有例子
07/14 22:47, 2F

07/14 22:52, , 3F
嗯...我看了一下acm-101 發現不用這樣做啊
07/14 22:52, 3F

07/14 22:53, , 4F
它只有第一行是數字
07/14 22:53, 4F

07/14 22:53, , 5F
接下來都是 sss 1 sss 2 的形式 + 最後的 quit
07/14 22:53, 5F

07/14 22:54, , 6F
所以只是每次 cin>>s; 然後看看 s=="quit"?
07/14 22:54, 6F

07/14 22:55, , 7F
再決定要不要 cin>>num1>>s2>>num2; 啊
07/14 22:55, 7F

07/14 23:23, , 8F
謝謝你 想說這種問題以後應該會常碰到,所以想找出適合
07/14 23:23, 8F

07/14 23:24, , 9F
各種情形的方法,而不是只為了解決ACM101
07/14 23:24, 9F

07/14 23:35, , 10F
抱歉 感覺例子裡面沒有切出子字串???
07/14 23:35, 10F

07/15 00:33, , 11F
結果我妥協了 暫時就只用剛好符合101的做法 XD
07/15 00:33, 11F

07/15 02:41, , 12F
istringstream,都用 C++ 了別再 atoi 了。
07/15 02:41, 12F
文章代碼(AID): #1CFSahK0 (C_and_CPP)
文章代碼(AID): #1CFSahK0 (C_and_CPP)