Darf man das???



  • Darf ich sowas machen? Es gibt immer einen Compilerfehler ich bin aber nicht sicher ob das an etwas anderem Liegt oder an dem hier:

    strcpy(kategorieen.thema3, datei=fopen("C:\\TXTDATENBANK\\thema3.txt", "r+"));



  • Was soll das denn tun? Wenn du den Dateiinhalt kopieren willst, den musst du erst auslesen. Datei != Dateiinhalt.



  • marcH schrieb:

    strcpy(kategorieen.thema3, datei=fopen("C:\\TXTDATENBANK\\thema3.txt", "r+"));

    der zweite Parameter von strcpy muss ein Zeiger auf char sein, kein Zeiger auf FILE. Was willst du machen?



  • das ganze gehört zu einer Struktur mithilfe eines Pointers sollte dann der obige Befehl verwendet werden.



  • nein, das geht nicht, siehe man: strcpy(3) man: fopen(3)

    char *strcpy(char *dest, const char *src);
    

    und

    FILE *fopen (const char *path, const char *mode);
    

    also liefert fopen ein falsches Zeiger, denn strcpy erwartet ein const char*, nicht ein FILE*

    außerdem, wäre das möglich, wäre es auch so sau dumm sowas zu tun, denn fopen kann NULL zurückgeben, wenn die Datei nicht existiert und/oder du kein Lesezugriff hast, und man sollte strcpy kein NULL übergeben, das ende meistens sehr böse.



  • marcH schrieb:

    Darf ich sowas machen? Es gibt immer einen Compilerfehler ich bin aber nicht sicher ob das an etwas anderem Liegt oder an dem hier:

    strcpy(kategorieen.thema3, datei=fopen("C:\\TXTDATENBANK\\thema3.txt", "r+"));

    vielleicht hilft dir das weiter? damit wird die datei geöffnet, ausgelesen und ausgegeben

    FILE *datei;
    datei = fopen("datei.txt", "r");
    int a;
    while (a = fgetc(datei)) != EOF) {
         putchar(a); }
    strcpy (kategorien.thema3, a);   // ich weiss nicht obs funktioniert
    


  • maximo schrieb:

    marcH schrieb:

    Darf ich sowas machen? Es gibt immer einen Compilerfehler ich bin aber nicht sicher ob das an etwas anderem Liegt oder an dem hier:

    strcpy(kategorieen.thema3, datei=fopen("C:\\TXTDATENBANK\\thema3.txt", "r+"));

    vielleicht hilft dir das weiter? damit wird die datei geöffnet, ausgelesen und ausgegeben

    FILE *datei;
    datei = fopen("datei.txt", "r");
    int a;
    while (a = fgetc(datei)) != EOF) {
         putchar(a); }
    strcpy (kategorien.thema3, a);   // ich weiss nicht obs funktioniert
    

    geht nicht, weil a kein 0-terminierendes String ist, nicht einmal ein char*


Anmelden zum Antworten