#All to istream This is a dummy demo on how to process standard input, file or string as istream.
##Why istream It is common to interpret string, file or standard input (especially redirected) character by character. To process them in a single function is very convenient, which saves programmer some effort and provides a more user friendly interface.
Input stream can interpret input from sequences of characters. Useful functions
are provided or inherited from ios
or ios_base
.
##How to convert different inputs to istream
-
Standard input stream
std::cin
is defined asistream
extern istream cin;
-
std::fstream
andstd::stringstream
Both
fstream
andstringstream
are inherited fromiostream
, which inherited fromistream
.ios_base <--- ios <--- istream <--- iostream <--- fstream <--- stringstream
-
std::string
string
can be converted tostringstream
.explicit stringstream (const string& str, ios_base::openmode which = ios_base::in | ios_base::out);
##Usage
$ ./all_to_istream -h
Usage: all_to_istream
or: all_to_istream FILE
or: all_to_istream -s STRING
or: all_to_istream -h
Process standard input, file or string as istream, to simplify support to different inputs.
$ ./all_to_istream
Info: read_std_input
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod.
^D
$ ./all_to_istream > lorem.txt
Info: read_std_input
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod.
^D
$ ./all_to_istream < lorem.txt
Info: read_std_input
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod.
$ cat lorem.txt | ./all_to_istream
Info: read_std_input
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod.
$ ./all_to_istream lorem.txt
Info: read_file
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod.
$ ./all_to_istream -s "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod."
Info: read_string
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod.
$ ./all_to_istream.exe lorem
Error: fail to open file lorem