C assign string aus argv[] zu char-array

Ich habe den folgenden code, der liest einen Dateinamen von der Kommandozeile aus und öffnet diese Datei:

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv){
    FILE *datei;
    char filename[255];

    //filename = argv[1];
    //datei=fopen(filename, "r");
    datei=fopen(argv[1], "r");
    if(datei != NULL)
        printf("File opened");
    else{
        printf("Fehler beim öffnen von %s\n", filename);
        return EXIT_FAILURE;
    }
    return EXIT_SUCCESS;
}

Dieses Beispiel funktioniert, aber ich wollen, schreiben Sie die Zeichenfolge aus der Befehlszeile in das char-array und übergeben dieses char-array zu fopen(), jedoch bekomme ich die compiler-Fehlermeldung
Error: assignment to expression with array type filename = argv[1];

Was hat dieser Fehler zu bedeuten und was kann ich tun, um es zu beheben?

  • Verwenden strcpy(filename, argv[1]);
  • mögliche Duplikate von Nicht zuweisen eines Arrays zu einem anderen
  • fügen Sie ein \n am Ende der "Datei geöffnet" - Meldung. Verwenden Sie Klammern um diese Anweisung für die Konsistenz mit der else-Klausel.
  • Verwenden strncpy(filename, argv[1], sizeof filename);
InformationsquelleAutor danielr1996 | 2015-02-23
Schreibe einen Kommentar