En ce qui concerne les fichiers, je peux te donner la réponse ( comme je disais, c´est pas compliqué, c´est juste quelque chose à savoir)...
La première étape c´est de savoir combien de caractères il faut lire...
En ASCII ( fichier txt) 1 caractère = 1 byte = 8 bits.
Donc finalement on veut la taille du fichier. On va utiliser fread(...) pour lire alors on veut la taille en byte.
Il y a plusieurs façon de faire ça, en voici une ( tu m´excuseras si j´te donne du code avec des noms en anglais -- c´est l´habitude -- et le forum aime pas les tabulations alors tu vas devoir les refaire, heh):
- include < sys/stat.h>
int getFileSize(const char *filename)
{
struct stat results;
if(stat(filename, &) == 0)
{
return results.st_size;
}
else
{
return -1;
}
}
Cette fonction là retourne la taille du fichier dont tu passes le path en paramètre... du genre
int size = getFileSize("monfichier.txt");
Si une erreur a lieu, la fonction retourne -1.
Une fois que tu as la taille tu peux lire avec un buffer dynamique. Quelque chose du genre ( en utilisant les fonctions de stdio.h):
char *buffer = new char[size + 1];
FILE *txt = fopen("monfichier.txt", " rb");
fread(buffer, size, 1, txt);
buffer[size] = ´\0´;
cout < < buffer;
delete[] buffer;
et voilà...
Dans tout ça on a de l´allocation dynamique de la mémoire ( c´est vital de bien comprendre ça) et des fonctions standards pour lire des fichiers ( plutôt vital aussi).
En ce qui concerne `struct stat results`, c´est un objet définit dans sys/stat.h qui sert à obtenir des statistiques sur différentes choses. Pas vraiment vital mais intéressant quand même.
Yay, regarde maman, je partage mes connaissances
.
Si jamais un grand gourou d´la prog lit ça, j´aimerais savoir si les trucs dans sys/stat.h sont portables ? J´en doute hehe.