Zum Inhalt springen

Problem mit löschen von Datei


kirchi123

Empfohlene Beiträge

Ich hab jetzt ein Programm fertig, dass 2 Dateinen als Parameter einließt. Dann wird die 1. Datei an die 2. Datei anhängt. Jetzt möcht ich noch das danach die 1. Datei gelöscht wird, aber es funktioniert noch nicht. Das anhängen funktioniert einwandfrei, aber das löschen funktioniert nicht. Ich hab das mit der Funktion remove machen, könnte mir das jemand vielleicht helfen. Der Code lautet:

#include <stdio.h>

#include <iostream>

using namespace std;


char *err;


void usage() {

	fprintf(stdout, "Bitte 2 Dateinamen als Parameter eingeben.\n");

	return;

}


void error (char *errorMessage) {

	fprintf(stdout, errorMessage);

	exit(1);

}


int main(int argc, char **argv) 

{

    char c;



    FILE *quellDatei;

    FILE *zielDatei;


    if (argc != 3)

    usage();


    quellDatei = fopen(argv[1], "r");

    if(quellDatei == NULL)

    {

        cout << "Konnte Quelldatei nicht oeffnen";

        return -1;

    }


    zielDatei = fopen(argv[2], "a");

    if(zielDatei == NULL)

    {

        cout << "Konnte Zieldatei nicht oeffnen" ;

        return -1;

    }

    while( fscanf(quellDatei, "%c", &c) != EOF)

    {

        fprintf(zielDatei, "%c",c);

    }

    fclose(quellDatei);

    fclose(zielDatei);


    int remove (const char *argv[1]);

}

Die remove Funktion ist ganz unten. Was könnte da falsch sein. Es kommt keine Fehlermeldung, dass löschen wird einfach nicht gemacht. Vielen Dank im Vorraus.

Bearbeitet von Klotzkopp
Code-Tags hinzugefügt
Link zu diesem Kommentar
Auf anderen Seiten teilen

Deiner Remove Funktion fehlt einfach jeglicher Inhalt, entweder du hast vergessen was anzuhängen oder aber einfach keine Idee. Hier macht es übrigens einen Unterschied unter welchem System (Windows/Unix/...) das Programm laufen soll.
Es ist nicht "seine" Remove-Funktion. Remove ist eine Standardfunktion, wenn auch nicht sonderlich bekannt. Deswegen hängt das auch nicht vom Betriebssystem ab.

Ich hab einfach keine Idee wie die Funktion lauten sollte. Deshalb steht da nur das.
Das Problem ist, dass das, was du da hingeschrieben hast, eine Funktionsdeklaration ist. Du willst an dieser Stelle die Funktion aber aufrufen, das sieht anders aus:

int result = remove( argv[1] );

Das ist ein Funktionsaufruf. Ist doch dasselbe wie bei fopen usw.

Vielen Dank im Vorraus.
Es tut mir jedesmal weh, wenn ich das lesen muss. Könntest du das zweite R weglassen? Danke ;)
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...