51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
/* DCOPY.CPP -- Example from Chapter 5 of User's Guide */
|
||
|
||
/* DCOPY source-file destination-file *
|
||
* copies existing source-file to destination-file *
|
||
* If latter exists, it is overwritten; if it does not *
|
||
* exist, DCOPY will create it if possible *
|
||
*/
|
||
|
||
#include <iostream.h>
|
||
#include <process.h> // for exit()
|
||
#include <fstream.h> // for ifstream, ofstream
|
||
|
||
main(int argc, char* argv[]) // access command-line arguments
|
||
{
|
||
char ch;
|
||
if (argc != 3) // test number of arguments
|
||
{
|
||
cerr << "USAGE: dcopy file1 file2\n";
|
||
exit(-1);
|
||
}
|
||
|
||
ifstream source; // declare input and output streams
|
||
ofstream dest;
|
||
|
||
source.open(argv[1],ios::nocreate); // source file must be there
|
||
if (!source)
|
||
{
|
||
cerr << "Cannot open source file " << argv[1] <<
|
||
" for input\n";
|
||
exit(-1);
|
||
}
|
||
dest.open(argv[2]); // dest file will be created if not found
|
||
// or cleared/overwritten if found
|
||
if (!dest)
|
||
{
|
||
cerr << "Cannot open destination file " << argv[2] <<
|
||
" for output\n";
|
||
exit(-1);
|
||
}
|
||
|
||
while (dest && source.get(ch)) dest.put(ch);
|
||
|
||
cout << "DCOPY completed\n";
|
||
|
||
source.close(); // close both streams
|
||
dest.close();
|
||
}
|
||
|
||
|
||
|
||
|