Auslesen einer Datei



  • Hallo an alle.
    Ich habe folgende Funktion, die mir den Text aus einer Datei ausliest.

    const char* open_file(const char* in, int* olen) {
      FILE* input = fopen(in, "r");
      if(input == NULL) {
        *olen = 0;
        return 0;
      }
      //obtain the file size
      fseek(input, 0, SEEK_END);
      *olen = ftell(input);
    
      char* buffer = (char*)malloc(*olen);
    
      //copy the file contents into the buffer
      printf("%i bytes were read\n", fread(buffer, sizeof(char), *olen, input));
    
      fclose(input);
      printf("%s\n", buffer);
      return buffer;
    }
    

    Komischerweise wird in den buffer nichts geschrieben. Die printf liefert mir für das Ergebnis der fread funktion "0 bytes were read". Die länge der Datei, bzw. der Zeichen (steht in *olen) wird aber richtig geschrieben.
    Kann mir vielleicht jemand einen Tip geben, wo ich hier ein Fehler gemacht habe?
    Danke in Voraus.



  • Schon erledigt:)
    man muss ja die position auch wieder zurücksetzen, nachdem man fseek aufruft.


Anmelden zum Antworten