#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) { //Kommandozeilenargumente und Array der Argumente als strings
    // Prüfen, ob ein Dateiname als Argument übergeben wurde
    if (argc < 2) {
        printf("Bitte Dateinamen als erstes Argument angeben.\n");
        return 1; // Fehlercode zurückgeben und Programm beenden
    }

    // Datei im Lesemodus ("r") öffnen
    FILE *datei = fopen(argv[1], "r");
    if (datei == NULL) {
        // Fehler beim Öffnen der Datei, z.B. Datei existiert nicht
        perror("Fehler beim Öffnen der Datei");
        return 1; // Fehlercode zurückgeben und Programm beenden
    }

    char zeile[1024];      // Puffer für eine Zeile (max. 1023 Zeichen + '\0')
    int zeilennummer = 1;  // Startwert für die Zeilennummerierung

    // Solange noch Zeilen gelesen werden können
    while (fgets(zeile, sizeof(zeile), datei) != NULL) {
        // Zeilennummer und Inhalt der Zeile ausgeben
        // %4d: Zeilennummer rechtsbündig mit mindestens 4 Stellen
        printf("%4d: %s", zeilennummer, zeile);
        zeilennummer++; // Zeilennummer erhöhen
    }

    // Datei schließen
    fclose(datei);

    return 0;
}