[問題] 如何將cin資料忽略第一位元符號

看板C_and_CPP作者 ( )時間5年前 (2018/09/30 01:53), 5年前編輯推噓4(405)
留言9則, 6人參與, 5年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) C++ 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) vs2012 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 輸入(x1,y1) 假設為(10,11) 必須忽略掉左右括弧及逗號 餵入的資料(Input): (10,11) 預期的正確結果(Expected Output): x1=10 y1=11 錯誤結果(Wrong Output): 直接跳出抓不到資料 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) cout << endl << "請輸入頂點(x1,y1) : "; cin>>x1;cin.ignore(x1,','); cin>>y1;cin.ignore(y1,')'); 補充說明(Supplement): 這樣子的話只能忽略掉右括弧及逗號 怎麼想就是沒辦法找出忽略掉左括號 有想過 string replace.char轉array.判斷他是符號所以忽略 因為還算是初心者還不太了解函數庫內的東西 或是書本裡沒看到的東西 少東少西 想破頭也找不到方法才來求救qq -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.76.224.77 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1538243638.A.F55.html ※ 編輯: by00490975 (42.76.224.77), 09/30/2018 01:54:34

09/30 01:58, 5年前 , 1F
資料讀進來後利用boost split拿掉左右括號和逗點
09/30 01:58, 1F

09/30 03:43, 5年前 , 2F
ignore的參數傳錯了吧 第一個是最多忽略多少字元
09/30 03:43, 2F

09/30 03:45, 5年前 , 3F
就在第一個cin之前先ignore一次就好了
09/30 03:45, 3F

09/30 03:48, 5年前 , 4F

09/30 09:17, 5年前 , 5F
cin.get可以拿掉一個字元 如果要檢查可以再之前先用cin
09/30 09:17, 5F

09/30 09:17, 5年前 , 6F
.peek偷看下一個字元是什麼
09/30 09:17, 6F

09/30 10:36, 5年前 , 7F
試試#include <cstdio> 用scanf("(%d,%d)", &x1, &y1);
09/30 10:36, 7F

09/30 11:51, 5年前 , 8F
使用boost.regex
09/30 11:51, 8F

10/01 03:36, 5年前 , 9F
這種就乖乖回去用 scanf 吧
10/01 03:36, 9F
文章代碼(AID): #1RhxmszL (C_and_CPP)