1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int CompareChaine( char *chaine1, char *chaine2 );
int LongueurChaine ( char *chaine );
int LireClavier( char *buffer, int longueur );
int main (void)
{
char *buffer = (char *)malloc(10*sizeof(char));
if ( buffer != NULL )
{
int continuer = 1;
while ( continuer == 1 )
{
char *arreter="quit";
printf("\n\n envoi du message > ");
int saisie = LireClavier( buffer, 10 );
//printf("\n saisie = %d", saisie );
if ( CompareChaine( buffer, arreter ) != 0 && saisie == 1 )
{
printf("\n message envoye : %s", buffer);
}
else {
printf("\n arret de l'envoi des messages\n\n");
continuer = 0;
}
}
}
else {
printf("\n Erreur allocation");
}
system("pause");
return 0;
}
int LongueurChaine ( char *chaine )
{
int longueur = 0;
while ( *chaine != '\0' )
{
chaine++;
longueur++;
}
return longueur;
}
int CompareChaine( char *s, char *t )
{
for ( ; *s == *t; s++, t++ )
{
if ( *s == '\0' )
{
return 0;
}
else {
return *s - *t;
}
}
}
int LireClavier( char *buffer, int longueur )
{
/* */
if ( buffer != NULL )
{
/* Si la saisie a reussie */
if ( fgets( buffer, longueur, stdin ) != NULL )
{
/* On supprime le possible retour chariot */
int i=0;
while ( *buffer != '\0' )
{
if ( *buffer == '\n' )
{
*buffer = '\0';
}
buffer++;
}
/* On retourne 1 : la saisie a correctement été traité */
/* On vide stdin en cas d'overflow du buffer */
fflush(stdin);
return 1;
}
/* Si erreur on retourne 0 */
else {
return 0;
}
}
/* Si erreur, on retourne -1 */
else {
return -1;
}
} |
Partager