Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #13605
| Path | csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail |
|---|---|
| From | Ian Collins <ian-news@hotmail.com> |
| Newsgroups | comp.lang.c++ |
| Subject | Re: Help with reading formatted input from an istream |
| Date | Fri, 27 Jan 2012 20:21:00 +1300 |
| Lines | 42 |
| Message-ID | <9of1isF8j0U2@mid.individual.net> (permalink) |
| References | <48680e14-e47a-4778-931e-bc6ec6a40d87@t7g2000vbg.googlegroups.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=ISO-8859-1; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Trace | individual.net zd8Or782zQwMR4jkcAahuQh5lrRXc2+H+hwBx2P7sohr8cKQyH |
| Cancel-Lock | sha1:XT3Zqh1gkgw6XroQPjuiKHzfaz0= |
| User-Agent | Mozilla/5.0 (X11; SunOS i86pc; rv:6.0.2) Gecko/20111003 Thunderbird/6.0.2 |
| In-Reply-To | <48680e14-e47a-4778-931e-bc6ec6a40d87@t7g2000vbg.googlegroups.com> |
| Xref | x330-a1.tempe.blueboxinc.net comp.lang.c++:13605 |
Show key headers only | View raw
On 01/27/12 03:12 PM, Ttodir wrote:
> Consider the following program:
>
> #include<iostream>
> #include<iterator>
> #include<string>
> #include<set>
> #include<algorithm>
>
> using namespace std;
>
> typedef string T; // to simplify, always consider T as string
>
> template<typename input_iterator>
> void do_something(const input_iterator& first, const input_iterator&
> last) {
> const ostream_iterator<T> os(cout, "\n");
> const set<T> words(first, last);
> copy(words.begin(), words.end(), os);
> }
>
> int main(int argc, char** argv) {
> const istream_iterator<T> is(cin), eof;
> do_something(is, eof);
> return 0;
> }
>
> The program extracts all the words from an istream (cin) and does
> something with them. Each word is seperated by a white space by
> default. The logic behind the formatted extraction is inside the
> istream_iterator.
>
> What I need to do now is to pass to do_something() two iterators so
> that the extracted words will be separated by a punctuation character
> instead of a white space (white spaces will be considered as "normal"
> characters). How would you do that in a "clean C++ way" (that is, with
> the minimum effort)?
Derive your own input iterator class from std::input_iterator.
--
Ian Collins
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Help with reading formatted input from an istream Ttodir <sanmrtn96@gmail.com> - 2012-01-26 18:12 -0800
Re: Help with reading formatted input from an istream Ian Collins <ian-news@hotmail.com> - 2012-01-27 20:21 +1300
Re: Help with reading formatted input from an istream Leigh Johnston <leigh@i42.co.uk> - 2012-01-27 12:47 +0000
Re: Help with reading formatted input from an istream Ttodir <sanmrtn96@gmail.com> - 2012-01-28 11:02 -0800
csiph-web