Wie muss man diese Aufgabe angehen?
Text formatieren
• Entwickeln Sie ein C-Programm, das eine Textdatei einliest und die Zeilen neu formatiert.
• Die in der Datei enthaltenen Worte sollen in der selben Reihenfolge wie eingelesen neu zu Zeilen von maximal n > 0 Zeichen bei maximaler Zeilenausnutzung in eine neue Datei geschrieben werden. Die Zeilenlänge n soll als Parameter der main-Funktion übergeben werden.
• Die Namen der beiden Textdateien sollen auf der Kommandozeile angegeben werden.
Beispiel n = 72:
Und was wäre erstmal für die Eingabe zu beachten?
2 Antworten
![](https://images.gutefrage.net/media/user/MasterFAQ/1719096606429_nmmslarge__0_0_1024_1024_3ee6d102f9fff3b8eb89a9336cca61ab.webp?v=1719096606000)
Warscheinlich Out 2 Date aber wem's Hilft:
- Parameter einlesen d.H. Zeilänge "n" und die dAteinamen für die Eingabe und Ausgebe werden als Argumente der main Funkion übergeben.
int main(int argc, char *argv[]) {
if (argc != 4) {
printf("Usage: %s <input_file> <output_file> <line_length>\n", argv[0]);
return 1;
}
char *inputFileName = argv[1];
char *outputFileName = argv[2];
int lineLength = atoi(argv[3]);
Danach Datein öffnen sowohl Ein als auch Ausgabedateien:
FILE *inputFile = fopen(inputFileName, "r");
if (!inputFile) {
perror("Error opening input file");
return 1;
}
FILE *outputFile = fopen(outputFileName, "w");
if (!outputFile) {
perror("Error opening output file");
fclose(inputFile);
return 1;
}
Dann müssen wir den Text einlesen und Formatieren:
char line[1000]; // Annahme: Keine Zeile hat mehr als 1000 Zeichen
while (fgets(line, sizeof(line), inputFile)) {
// Hier implementierst du die Formatierung der Zeilen gemäß der Zeilenlänge
// und schreibst das Ergebnis in die Ausgabedatei.
}
Zu guter letzt schließen wir die Dateien am ende des Programms.
fclose(inputFile);
fclose(outputFile);
return 0;
Ist zwar nur eine grobe Struktur aber ja.
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
Zeichne dir doch den gewünschten Programmablauf auf. Daraus kannst du dann doch bereits die einzelnen Arbeitsschritte ableiten und in Pseudocode überführen.
Und dein Pseudocode muss dann eben nur noch in C übersetzt werden.
![](https://images.gutefrage.net/media/user/Teigkneter/1706135400465_nmmslarge__298_611_257_257_16f1b3bc7184236f1ad457a450a469e1.png?v=1706135401000)