作者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/cn.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