Une ligne se termine toujours par le caractère '\n'. Mais t'as pas vraiment besoin de savoir où est la fin si t'utilises "getline" ou "fgets" car ces fonctions s'arrêtent systématiquement à chaque fin de ligne. Donc getline peut être une bonne solution
Thordax a écrit :
- Comment boucler l'opération du dessus ? (while(!eof()) marcherait-il dans ce cas de figure ?)
|
NON !!! On n'utilise jamais "feof" (nom trompeur) pour détecter une fin de fichier.
Le principe général d'un traitement de fichier est
while (fonction_de_lecture(...) != valeur_spéciale_quand_je_peux_plus_lire) |
La valeur spéciale étant dépendante de la fonction que t'utilises (=> man fonction pour plus d'infos)
Exemples
int carac;
FILE *fichier;
while ((carac=fgetc(fichier)) != EOF)
{...} |
char buffer[1024 + 1];
FILE *fichier;
while (fgets(buffer, 1024 + 1, fichier)) != NULL)
{...} |
char *buffer=NULL;
int taille;
FILE *fichier;
while (getline(&buffer, &taille, fichier)) != -1)
{...}
if (buffer)
free(buffer); |
feof sert, une fois que tu peux plus lire, à t'indiquer si tu peux plus lire à cause de la "fin de fichier" ou à cause d'une autre raison (par exemple "disque crashé", "fichier supprimé entre temps", etc...)
Message édité par Sve@r le 22-06-2006 à 20:01:59
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.