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

作者: by00490975 (Change)   2018-09-30 01:53:55
開發平台(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
作者: bluesoul (忙死你老爸)   2018-09-30 01:58:00
資料讀進來後利用boost split拿掉左右括號和逗點
作者: idiont (supertroller)   2018-09-30 03:43:00
ignore的參數傳錯了吧 第一個是最多忽略多少字元就在第一個cin之前先ignore一次就好了https://tinyurl.com/ax24r44
作者: jerryh001   2018-09-30 09:17:00
cin.get可以拿掉一個字元 如果要檢查可以再之前先用cin.peek偷看下一個字元是什麼
作者: john2007 (john)   2018-09-30 10:36:00
試試#include <cstdio> 用scanf("(%d,%d)", &x1, &y1);
作者: eye5002003 (下一夜)   2018-09-30 11:51:00
使用boost.regex
作者: CarbonK (HTYISABUG)   2018-10-01 03:36:00
這種就乖乖回去用 scanf 吧

Links booklink

Contact Us: admin [ a t ] ucptt.com