copy.cc
author Markus Bröker <mbroeker@largo.dyndns.tv>
Mon, 07 Jun 2010 23:20:47 +0200
changeset 132 54a04f5f141d
parent 77 49e0babccb23
permissions -rw-r--r--
Adjusted to show side effects and their handling When dealing with static buffers, successive calls point to the same memory location and overwrite formers ones... committer: Markus Bröker <mbroeker@largo.homelinux.org>

/**
 * copy.cc
 * Copyright (C) 2008 Markus Bröker
 *
 * Kopierprogramm für Dateien in C++
 */

#include <iostream>
#include <fstream>
#include <cstdlib>

int main (int argc, char **argv)
{
    std::ifstream in;
    std::ofstream out;

    char c;

    if (argc != 3) {
        std::cout << "Benutzung: " << argv[0] << " <QUELLE> <ZIEL>" << std::endl;
        return EXIT_SUCCESS;
    }

    in.open (argv[1], std::ios::binary);
    if (!in) {
        std::cerr << "Fehler: Kann Datei " << argv[1] << " nicht lesen!" << std::endl;
    }

    out.open (argv[2]);
    if (!out) {
        std::cerr << "Fehler: Kann Datei " << argv[2] << " nicht beschreiben!" << std::endl;
    }

    while (in.get (c)) {
        out << c;
    }

    in.close ();
    out.close ();

    return EXIT_SUCCESS;
}