Lesen der gesamten Textdatei in ein Zeichen-Array in C

Ich möchte den Inhalt einer Textdatei in ein Zeichen-Array in C einlesen. Zeilenumbrüche müssen beibehalten werden.

Wie mache ich das? Ich habe im Web einige C ++ - Lösungen gefunden, aber keine einzige C-Lösung.

Bearbeiten: Ich habe jetzt den folgenden Code:

void *loadfile(char *file, int *size)
{
    FILE *fp;
    long lSize;
    char *buffer;

    fp = fopen ( file , "rb" );
    if( !fp ) perror(file),exit(1);

    fseek( fp , 0L , SEEK_END);
    lSize = ftell( fp );
    rewind( fp );

    /* allocate memory for entire content */
    buffer = calloc( 1, lSize+1 );
    if( !buffer ) fclose(fp),fputs("memory alloc fails",stderr),exit(1);

    /* copy the file into the buffer */
    if( 1!=fread( buffer , lSize, 1 , fp) )
      fclose(fp),free(buffer),fputs("entire read fails",stderr),exit(1);

    /* do your work here, buffer is a string contains the whole text */
    size = (int *)lSize;
    fclose(fp);
    return buffer;
}

Ich erhalte eine Warnung: Warnung: Die Zuweisung macht den Zeiger aus einer Ganzzahl ohne Umwandlung. Dies ist auf der Liniesize = (int)lSize;. Wenn ich die App starte, werden die Standardeinstellungen verwendet.

Aktualisieren Der obige Code funktioniert jetzt. Ich habe den Segfault gefunden und eine andere Frage gestellt. Danke für die Hilfe

Antworten auf die Frage(10)

Ihre Antwort auf die Frage