copy.cc
author Markus Bröker <mbroeker@largo.dyndns.tv>
Sat, 13 Dec 2008 17:58:08 +0100
changeset 16 2b4ef74a16aa
parent 11 0a8be4eac87e
child 28 54addf5893ef
permissions -rw-r--r--
I extended the usage screen with help messages committer: Markus Bröker <mbroeker@largo.homelinux.org>
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
     1
/**
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
     2
 * Kopierprogramm für Dateien in C++
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
     3
 * Copyright (C) 2008 Markus Bröker
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
     4
 */
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
     5
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
     6
#include <iostream>
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
     7
#include <fstream>
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
     8
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
     9
int main(int argc, char **argv)
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    10
{
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    11
	std::ifstream in;
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    12
	std::ofstream out;
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    13
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    14
	char c;
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    15
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    16
	if ( argc != 3 ) {
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    17
		std::cout << "Benutzung: " << argv[0] << " <datei> <datei>" << std::endl;
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    18
		return EXIT_SUCCESS;
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    19
	}
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    20
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    21
	in.open(argv[1], std::ios::binary);
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    22
	if ( !in ) {
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    23
		std::cerr << "Fehler: Kann Datei " << argv[1] << " nicht lesen!" << std::endl;
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    24
	}
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    25
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    26
	out.open(argv[2]);
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    27
	if ( !out ) {
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    28
		std::cerr << "Fehler: Kann Datei " << argv[2] << " nicht beschreiben!" << std::endl;
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    29
	}
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    30
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    31
	while ( in.get(c) ) {
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    32
		out << c;
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    33
	}
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    34
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    35
	in.close();
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    36
	out.close();
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    37
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    38
	return EXIT_SUCCESS;
0a8be4eac87e c++ file copy demo added
Markus Bröker <mbroeker@largo.dyndns.tv>
parents:
diff changeset
    39
}