Programm zum Zählen von Zeichen in Datei!

  • Ich würde gerne ein Programm schreiben, das die Anzahl der Zeichen in einer Datei zählt. Der Dateiname soll als Parameter übergeben werden. Ich hab das Programm so geschrieben:

    #include <iostream>
    #include <string.h>
    #include <fstream>
    #include <cstdlib>

    using namespace std;

    static void usage (char *porgname) {
    cout << " Parameter nicht korrekt ";
    exit(1);
    }

    static void error (char *progname, char **errorMessage) {
    cout << " ERROR in " << " ue5.C " << errorMessage << endl;
    exit(1);
    }


    int main (int argc, char *argv[]) {
    cout << endl;
    cout << endl;
    FILE *datei;
    char zeichen;
    int zaehler = 0;
    int n = atoi (argv[1]);
    datei = fopen("text.txt", "r");
    if (argc !=2) {
    cout << " Fehler ";
    }
    datei = fgets(argv[1] != EOF);
    {
    zaehler++;
    }
    cout << " Die Datei enthält: " << zaehler << " Zeichen ";
    fclose(datei);
    }

    Das Programm funktioniert aber leider nicht. Es kommt immer eine Fehlermeldung. Ich bin noch ein Anfänger in C++. Könnte mir jemand helfen.
    Vielen Dank im Vorraus.

  • Würde mich auch interessieren, aber diese Zeilen hier...

    Code
    datei = fgets(argv[1] != EOF);
    {
       zaehler++;
    }

    ...machen überhaupt keinen Sinn. Schau dir mal fgets() genauer an. Du brauchst ne while Schleife und musst den Rückgabewert prüfen.

    Aber ich frag mich warum du mit der C-Library arbeitest, wenn du C++ lernen willst. Mit ifstream geht das wesentlich besser!

  • Da hat Wasserleiche total recht.
    Zum Handeln sollte man immer die C++-Klassen nehmen, nur wenn die C-Version benötogt wird, sollte man noch konvertieren.
    Das gilt auch für Strings und Array/Vektoren.

  • Ich habe das mit dem öffnen der Datei eh geschafft, aber das zählen der Zeichen macht mir Probleme. Wie kann ich das den schreiben?
    Wie kann ich das:
    datei = fgets(argv[1] != EOF);
    {
    zaehler++;
    }

    richtig mit einer while Schleife machen, das es wirklich die Anzahl der Zeichen zählt. Danke schon im Voraus.

  • Ich hab lang kein C++ mehr geschrieben :mrgreen:
    aber ich glaub so müsste es laufen, hab es jetzt mit der Variante von
    der Wasserleiche/The User gemacht.

    Gruß crAzywuLf :D