/** * Datei auf der Konsole mit Zeilennummern aufgeben. * * Schreiben Sie eine Funktion `print_file_with_lineno`, der man einen * Dateinamen bzw. Pfad zu einer Datei übergibt und die diese Datei * dann auf der Konsole ausgibt. Jede Zeile der Datei soll mit der * entsprechenden Zeilennummer ausgegeben werden. * * Denken Sie daran, Fehler abzufangen und entsprechende Fehlermeldungen * auszugeben. */ #include #include // Limitierung auf Zeilen mit maximal 255 Zeichen Länge #define BUFFER_SIZE 255 void print_file_with_lineno(const char* filename) { FILE *fh = fopen(filename, "r+"); if (!fh) { perror("Fehler: "); exit(1); } char buffer[BUFFER_SIZE]; char* line; int line_number = 1; while ((line = fgets(buffer, BUFFER_SIZE, fh))) { printf("%.3d: %s", line_number++, line); } fclose(fh); } int main(int argc, char** argv) { if (argc < 2) { puts("Dateiname fehlt!"); exit(1); } print_file_with_lineno(argv[1]); return 0; }