Datei einlesen



  • Hallo!
    Ich bin ein absoluter Neuling in C und hab folgende Aufgabe zu lösen:
    Schreiben Sie ein Programm, das als Kommandozeilenparameter einen Dateinamen/-Pfad erhält, und den Inhalt dieser Datei auf der Konsole ausgibt.
    Benutzen Sie für die Ausgabe eine getrennte Funktion in einem eigenen .c-File, dessen Prototyp in einem .h-File definiert ist.

    Leider hab ich absoult keinen Plan, wie ich das ganze realisieren soll. Kann mir bitte jemand einen Denkansatz geben? Bin wie gesagt noch ein absoluter c-Frischling, deshalb fällt mir hier leider nichts ein...

    Danke im Vorhinein!

    Mfg Phil



  • Also schonmal von vorweg
    "Wie machen nicht deine Hausaufgaben"

    Wie wärs mit Google?
    Stichwort C Tutorial
    Thema Kommandozeilenparameter, Dateiverarbeitung...

    Ich geb dir mal ein paar Denkanstöße

    Kommandozeilenparameter benutzen

    main(int argc,char *argv[])
    {
        int AnzahlDerParameter=argc;
        char ParameterListe[5][128];
        strncpy(Parameterliste[0],argv[0],127);
        strncpy(Parameterliste[1],argv[1],127);
        strncpy(Parameterliste[2],argv[2],127);
        strncpy(Parameterliste[3],argv[3],127);
        strncpy(Parameterliste[4],argv[4],127);
    ...
    

    Angenommen dein Programm heist TestKommando.exe,
    deine Kommandozeileneingabe lautete

    TestKommando Hallo Welt
    

    Dann ist AnzahlDerParameter gleich 3, weil 3 Parameter,
    Parameterliste[0] ist "TestKommando" //Programm
    Parameterliste[1] ist "Hallo" //Erster Paramter
    Parameterliste[2] ist "Welt" //2. ...
    Parameterliste[2] ist "" und so weiter

    Datein öffnest du so

    FILE *Datei=fopen("Text.txt","r"); //Öffnet Text.txt zum lesen ('r'ead)
    // write -> "w"
    
    if(Datei==NULL) { /*Fehler...*/ }
    
    fclose(Datei); //WICHTIG: Schließen nicht vergessen!
    

    Lesen kannst du so

    char Zeichen;
    while(!feof(Datei)) //lesen bis am Ende der Datei angekommen
    {
        Zeichen=fgetc(Datei); //Ein Zeichen lesen
        putchar(Zeichen); //zeichenweise ausgeben
    }
    

    Wenn du ein Programm daraus gemacht hast kannstes ja mal posten 😉



  • danke mal für die antwort.

    das ding ist keine hausaufgabe sondern lediglich eine übung für mich, um mich auf einen test vorzubereiten

    mfg phil


Anmelden zum Antworten