jon@cernvax.UUCP (jon) (04/13/89)
Hi, I am new to C++ and to get started I have decided to try converting some of my existing C program to C++. One of my C programs contains the following, edited, lines of code. FILE *infile, *outfile; switch (argc) { case 1 : infile = stdin; outfile = stdout; break; case 2 : if ((infile = fopen(argv[1], "r")) == NULL) { fprintf(...); exit(1); } outfile = stdout; break; case 3 : if ((infile = fopen(argv[1], "r")) == NULL) { fprintf(...); exit(1); } if ((outfile = fopen(argv[2], "w")) == NULL) { fprintf(...); exit(1); } break; default : fprintf(...); exit(1); } I am having trouble working out how to convert this C++, what I've got so far is as follows - filebuf filein, fileout; switch (argc) { case 1 : ; // Tried everything, nothing works!!!!!!!! case 2 : if (filein.open(argv[1], input) == NULL) { cerr << "Error: Cannot open file " << argv[1] << "\n\n"; exit(1); } // Likewise break; case 3 : if (filein.open(argv[1], input) == NULL) { cerr << "Error: Cannot open file " << argv[1] << "\n\n"; exit(1); } if (fileout.open(argv[2], output) == NULL) { cerr << "Error: Cannot open file " << argv[2] << "\n\n"; exit(1); } } istream infile(&filein); ostream outfile(&fileout); The problem is as follows, how to I define infile to be cin and outfile to be cout within the confines of a C++ program. Please if the answer to this is obvious don't flame me ... I melt easily. The only guide I have to C++ is the Waite Group's book C++ Programming by John Berry, if anyone can suggest anything else I would be grateful. *-----------------------------------------------------------------------* | | | Jon Caves {world}!mcvax!cernvax!jon | | Division DD, jon@cernvax.cern.ch | | CERN CH-1211, | | Geneva 23, "Quote? I haven't got time to think | | Switzerland. of a quote!" | | | *-----------------------------------------------------------------------*
jwolf@hpcupt1.HP.COM (John Wolf) (04/16/89)
Suggestion number 1: don't use stream i/o. It's more complicated than it should be. Use standard C library i/o routines. Just redesign your program in an object oriented fashion (i.e. specify classes). That in itself will be difficult but interesting. John Wolf, HP Cupertino