• # Un peu de C...

    Posté par . En réponse au message Chaine de caractère. Évalué à 1.

    Je suppose que l'algorithme est déjà bien défini (traitement d'erreurs, notemment).

    Pour le codage en C: fgets sert à lire une ligne de texte. Mais attention, cette fonction n'est pas simple à utiliser. Elle s'arrête soit:
    - quand le marqueur de fin de ligne '\n' est rencontré
    - quand le buffer que tu lui as passé est plein
    - en cas d'erreur interne (I/O, par exemple).
    Dans le troisième cas, fgets renvoie NULL; pour différencier les deux premiers, il faut chercher le caractère '\n' dans le buffer (pour chercher un caractère dans une chaîne: strchr). Si la ligne n'est pas complète, il vaut mieux réallouer un buffer plus grand.

    Et tout ça est C ISO. Il n'y a pas besoin de dépendre d'une bibliothèque externe, mais il faut avouer que ça peut être utile; Pour lire une ligne d'un fichier sans s'embêter avec fgets/strchr/realloc, tu peux utiliser des choses déjà existantes, comme la fonction fggets de CB Falconer, un participant régulier de comp.lang.c, qui évite tous ces problèmes http://cbfalconer.home.att.net/download/index.htm
    . Cette fonction (implementée en C ISO, donc portable), distribuée en domaine public, t'épargne les tests à n'en plus finir. Tu auras juste à écrire quelque chose comme :
    char *ligne=NULL;
    FILE *fd = fopen("ton_fichier", "r");
    if (fd == NULL)
    { /* traitement d'erreur */ }
    while (fggets(&ligne, fd) == 0)
    {
    /* la boucle principale */
    }


    Ensuite, pour comparer deux chaînes (dans le cas de 'DEBUT' et 'FIN'): strcmp.

    Avec ça, tu devrais déjà avoir de quoi faire. Si tu as d'autres questions, ou que l'explication n'est pas claire, n'hésite pas à redemander.