BigOncleSam icon

French read-write in C

BigOncleSam | PRO | 01/24/15 07:54:12 PM UTC | 0 ⭐ | 396 👁️ | Never ⏰ | []
C |

2.12 KB

|

None

|

0 👍

/

0 👎

// Proprietaire Antoine Chapusot
 
#include <stdio.h>
#define NLECT 10 // nombre de cases du tableau
 
void ecrire (char enr); // déclaration des fonctions
void lire ();
 
int nvlect=NLECT; // nombre de cases vides
int tlect=0, qlect=0; // tete et queue de lecture
int lect_actif=0; // temoin d'activite
char Tampon [NLECT]; // tableau
 
int main(void) // fonction principale (executee en premier)
{
    ecrire('c'); getchar();
    ecrire('h'); getchar();
    ecrire('a'); getchar();
    ecrire('p'); getchar();
    lire(); getchar();
    lire(); getchar();
    lire(); getchar();
    lire(); getchar();
    lire(); getchar();
    lire(); getchar();
    ecrire('c'); getchar();
    ecrire('h'); getchar();
    ecrire('a'); getchar();
    ecrire('p'); getchar();
    ecrire('c'); getchar();
    ecrire('h'); getchar();
    ecrire('a'); getchar();
    ecrire('p'); getchar();
    lire(); getchar();
    lire(); getchar();
    lire(); getchar();
    lire(); getchar();
    lire(); getchar();
    lire(); getchar();
    return 0;
}
// {A} et {B} sont des etiquettespour vous reperer dans les tests if-else
void lire () {
    if (nvlect < NLECT) // {B} y a t il des cases non vides? (pas vide?)
    {                   // {B} oui alors:
        lect_actif=1; // actif = on va acceder au tableau
        printf("%c\n", Tampon[tlect]); // sortie de la valeur a l'index tlect
        if (tlect == NLECT) tlect=0;        /* On augmente l'indice et Test pour eviter */
        else                tlect=tlect+1;  /* que l'indice deborde du tableau */
        nvlect=nvlect+1;    // une case libre de plus
        lect_actif=0;   // on a fini nos operations
    }
    else {printf("tampon vide\n");} // {B} non alors on affiche une erreur
}
 
void ecrire (char enr) {
    if (nvlect > 0) // {A} il y a des cases vide? (pas plein?)
    {               // {A} oui alors:
        lect_actif=1; // actif = on va acceder au tableau
        Tampon[qlect]=enr; // on ecrit enr dans la case "qlect" du tableau
        if (qlect == NLECT) qlect=0;        /* On diminue l'indice et Test pour eviter */
        else                qlect=qlect+1;  /* que l'indice deborde du tableau */
        nvlect=nvlect-1;    // une case libre en moins
        lect_actif=0;   // on a fini nos operations
    }
    else {printf("tampon plein\n");} // {A} non alors on affiche une erreur
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎