Hoe om te lezen van een bestand in ANSI C

Hoe om te lezen van een bestand in ANSI C


Een van de eerste dingen die je als een C-programmeur leert is het lezen van gegevens uit een bestand. Hoewel het was ontwikkeld in 1972, is de programmeertaal van C nog steeds gebruikte vandaag, vooral omdat hierdoor de programmeur op hoog niveau om toepassingen te ontwikkelen terwijl nog steeds in staat om controle van de afzonderlijke stukjes informatie indien nodig. Schrijf een programma om te lezen van een tekstbestand in slechts een paar stappen.

Instructies

1

Typ het volgende als u wilt opnemen van het headerbestand "ansi_c.h" in de eerste regel van uw bron-bestand:

< ansi_c.h > 2 bevatten

Typ het volgende in een nieuw project van de "ANSI C" om de "readFile"-functie te definiƫren:

int readFile (const char * filePathName, char ** resultsRead)

{

3

Typ het volgende om het bestand te openen:

int sizeOfFile = 0;

FILE *filePointer = fopen(filePathName, "rb");

if (filePointer == NULL)

{

*resultsRead = NULL;

return -999;

}4

Typ het volgende om de inhoud van het bestand te lezen:

fseek(filePointer, 0, SEEK_END);

sizeOfFile = ftell(filePointer);

fseek(filePointer, 0, SEEK_SET);

*resultsRead = (char *)malloc(sizeOfFile+1);5

Typ het volgende om te controleren op fouten tijdens het lezen van bestand:

if (sizeOfFile != fread(*resultsRead, sizeof(char), sizeOfFile, filePointer))

{

free(*resultsRead);

return -999;

}6

Typ het volgende om het bestand te sluiten en terug te keren van bestandsinhoud:

fclose(filePointer);

(*resultsRead)[sizeOfFile] = 0;

return sizeOfFile;

}

7

Typ het volgende om te definiƫren van de "main()" functie in uw bron-bestand:

int main)

{

Typ het volgende om uw variabelen te declareren:

char *dataRead;

int sizeOfFile;

int characterCntr = 0;8

Typ het volgende om te bellen naar de "readFile"-functie die u hierboven hebt gemaakt:

sizeOfFile = readFile("C:\\readData.txt", &dataRead);

if (sizeOfFile &lt; 0)

{

puts("Error reading data in file");

return 1;

}9

Ingang van de volgende lus via de inhoud in het bestand weer te geven en de functie te sluiten:

while (sizeOfFile > 0)

{

putchar(dataRead[characterCntr]);

characterCntr++;

sizeOfFile--;

}

return 0;

}