Hallo,
ich weiß, wie ich eine Textdatei einbinden kann und auch wie ich ein Ergebnis in eine Textdatei schreibe.
Aber ich weiß leider nicht, wie ich mehrere Textdateien einlesen kann.
Aufgabenstellung:
Mit folgendem Konsolenausdruck wird mein Programm aufgerufen:
./Liste <option> <Ausgabefile> <Eingabefile1> <Eingabefile2> ... <EingabefileN>.
optionen ist hier zu ignorieren, da das auch funktioniert
Folgender Programcode zu meinem Problemchen ^^
Habe ich da die Logik von fopen und fclose falsch verstanden, oder ist das ersteinmal richtig so?
Oder sollte ich für jede Eingabedatei ein extra Stream aufmachen?
Sprich:
file1 = fopen(argv[3], "read"))
file3 = fopen(argv[4], "read"))
file3 = fopen(argv[5], "read"))
etc.
und anschließend alle wieder einzeln schließen
Gruß.
ich weiß, wie ich eine Textdatei einbinden kann und auch wie ich ein Ergebnis in eine Textdatei schreibe.
Aber ich weiß leider nicht, wie ich mehrere Textdateien einlesen kann.
Aufgabenstellung:
Mit folgendem Konsolenausdruck wird mein Programm aufgerufen:
./Liste <option> <Ausgabefile> <Eingabefile1> <Eingabefile2> ... <EingabefileN>.
optionen ist hier zu ignorieren, da das auch funktioniert
Folgender Programcode zu meinem Problemchen ^^
C:
...
FILE *file1[argc-3], *file2;
...
int i = 3;
while(i >= 3 && i< argc ) // Anzahl der Textdateien
{
// argv[1] = optionsparameter
// argv[2] = Ausgabetextfile
// argv[i] = Eingabetextfiles (i = Anzahl)
if(argc > 1 && argv[1] != NULL && (file2 = fopen(argv[2], "write")) != NULL && (file1 = fopen(argv[i], "read")) != NULL)
{
while(fgets(buffer, SIZE, file1[i]) != NULL)
{
....
while(wort != NULL)
{
anhaengen(aktl_Elem, wort, copyString, counter1);
wort = strtok(NULL, splitt);
}
}
fclose(file1);
}
i++;
}
fclose(file2); // Da die äußere While-Schleife evtl. mehrere Eingabetextfilse ließt, soll
// die geschriebene Datei auch solange offen bleiben.
...
Oder sollte ich für jede Eingabedatei ein extra Stream aufmachen?
Sprich:
file1 = fopen(argv[3], "read"))
file3 = fopen(argv[4], "read"))
file3 = fopen(argv[5], "read"))
etc.
und anschließend alle wieder einzeln schließen
Gruß.
Zuletzt bearbeitet: