DataTool::DataTool(int argc, char **argv):
+ in_fn("-"),
out_fn("-")
{
GetOpt getopt;
getopt(argc, argv);
const vector<string> &args=getopt.get_args();
- if(args.empty())
- throw UsageError("Must give input filename");
-
- in_fn=args[0];
+ if(!args.empty())
+ in_fn=args[0];
}
int DataTool::main()
{
- ifstream in(in_fn.c_str());
- if(!in)
- {
- cerr<<"Couldn't open input file\n";
- return 1;
- }
+ istream *in;
+ if(in_fn=="-")
+ in=&cin;
+ else
+ in=new ifstream(in_fn.c_str());
ostream *out;
if(out_fn=="-")
else
out=new ofstream(out_fn.c_str());
- DataFile::Parser parser(in, in_fn);
+ DataFile::Parser parser(*in, in_fn);
DataFile::Writer writer(*out);
if(binary)
writer.set_binary(true);