作者by00490975 ( )
看板C_and_CPP
標題[問題] 如何將cin資料忽略第一位元符號
時間Sun Sep 30 01:53:55 2018
開發平台(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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1538243638.A.F55.html
※ 編輯: by00490975 (42.76.224.77), 09/30/2018 01:54:34
1F:→ bluesoul: 資料讀進來後利用boost split拿掉左右括號和逗點 09/30 01:58
2F:推 idiont: ignore的參數傳錯了吧 第一個是最多忽略多少字元 09/30 03:43
3F:→ idiont: 就在第一個cin之前先ignore一次就好了 09/30 03:45
5F:推 jerryh001: cin.get可以拿掉一個字元 如果要檢查可以再之前先用cin 09/30 09:17
6F:→ jerryh001: .peek偷看下一個字元是什麼 09/30 09:17
7F:→ john2007: 試試#include <cstdio> 用scanf("(%d,%d)", &x1, &y1); 09/30 10:36
8F:推 eye5002003: 使用boost.regex 09/30 11:51
9F:推 CarbonK: 這種就乖乖回去用 scanf 吧 10/01 03:36