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
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.
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.