Sunday, July 26, 2009

Read data from file in C?

I want to read n names from a file, displayed like this:





3 // n - number of entries


Marry


George


Andrew





... in C.





I've looked around but don't know how to use fscanf or fgets.

Read data from file in C?
#include %26lt;stdio.h%26gt;


#include %26lt;stdlib.h%26gt;





int main () {


FILE * pFile;


long lSize;


char * buffer;


size_t result;





pFile = fopen ( "myfile.bin" , "rb" );


if (pFile==NULL) {fputs ("File error",stderr); exit (1);}





// obtain file size:


fseek (pFile , 0 , SEEK_END);


lSize = ftell (pFile);


rewind (pFile);





// allocate memory to contain the whole file:


buffer = (char*) malloc (sizeof(char)*lSize);


if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}





// copy the file into the buffer:


result = fread (buffer,1,lSize,pFile);


if (result != lSize) {fputs ("Reading error",stderr); exit (3);}





/* the whole file is now loaded in the memory buffer. */





// terminate


fclose (pFile);


free (buffer);


return 0;


}


No comments:

Post a Comment