From: Ian S. <ian...@st...> - 2009-05-05 08:54:30
|
Peter Vanroose wrote: > David Doria wrote: >> Can "1,2,3" and "(1,2,3)" type input handling be added? > > Good idea; only... I don't know what would be the correct way to implement this using istream; the current implementation is: > > Type x, y, z; is >> x >> y >> z; p.set(x,y,z); return is; > > We would need something like > 1) "peek()" to see whether a "(" is coming up and if so, gobble it; > 2) is >> x; > 3) "peek()" again to see wheter a "," comes up and gobble it; > (etc.) > Not to speak of gobbling optional whitespace; or is this always automatic, also with peek()? > > Anybody did something similar before and can provide a working & robust implementation? > > -- Peter. > There is an implementation of operator>>(istream, complex) in Stroustrup, 3rd Ed p 621 - "Input of User Defined Types". It handles the default real-only case, but it should be easy* to modify appropriately. * - Easy compared to writing other parsers. It is usually quite difficult to get the case-analysis and error-handling correct. Ian. |