Sve zavisi sta zelis konkretno da postignes programom. Pokazi konkretan problem, pa cemo ti reci sta je najoptimalnije.
Fajl moze biti proizvoljne velicine i obicno je suvisno praviti kopiju celog fajla u memoriji, smestanjem u neki niz char-ova.
Ipak, postoji vise nacina kako bi to postigao, a najjednostavnije je sa fread() funkcijom, sto je dato u primeru.
Code:
// Primer iz Borlandovog "C Runtime Library" helpa
#include <string.h>
#include <stdio.h>
int main(void)
{
FILE *stream;
char msg[] = "this is a test";
char buf[20];
if ((stream = fopen("DUMMY.FIL", "w+"))
== NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
/* write some data to the file */
fwrite(msg, strlen(msg)+1, 1, stream);
/* seek to the beginning of the file */
fseek(stream, SEEK_SET, 0);
/* read the data and display it */
fread(buf, strlen(msg)+1, 1, stream);
printf("%s\n", buf);
fclose(stream);
return 0;
}
A mozes i (u skladu s tvojim primerom) da citas karakter po karakter i smestas u neki niz dovoljne velicine, inkrementirajuci brojac posle svakog pojedinacnog citanja. Velicinu niza mozes odrediti prethodnim citanjem velicine fajla i dinamicki ga kreirati.
Ono sto vidim je da te zbunjuje int i char u kontekstu citanja fajlova. Da ne detaljisem, po jeziku C, to su prakticno identicni tipovi podataka, jer se char realizuje preko inta, ali to je neka druga tema. Dovoljno je da imas char niz, a kasnije ga mozes transformisati u sta god zelis, pod uslovom da poznajes strukturu fajla.