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