Bonjour,
J'essaye de faire un logiciel en mode console qui me permettrais de discuter entre des ordinateur en réseau possédant un dossier partagé.
Voilà le code pour l'instant :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void viderBuffer();
int lire(char *chaine, int longueur);
int verif(char *chaine);
int main(int argc, char *argv[])
{
char prenom[30];
char texteAEntrer[200];
char chaine[200] = "";
char *suiteChaine;
//ouverture du fichier com.gv qui sera dans le dossier partagé
FILE* fichier = NULL;
fichier = fopen("com.gv", "w+");
printf("Quel est votre prenom ? ");
lire(prenom, 30);
if (fichier != NULL)
{
printf("Le fichier est bien charge !\n");
do
{
printf("%s", prenom);
printf(" : ");
lire(texteAEntrer, 200);
fputs(prenom, fichier);
fputs(" : ", fichier);
fputs(texteAEntrer, fichier);
fputs("\n", fichier);
} while (verif(texteAEntrer));
rewind(fichier);
while (fgets(chaine, 200, fichier) != NULL) // On lit le fichier tant qu'on ne reçoit pas d'erreur
{
suiteChaine = strstr(chaine, prenom);
if (suiteChaine = NULL)
{
printf("%s", suiteChaine); // On affiche la chaîne qu'on vient de lire
}
}
getchar();
fclose(fichier);
}
return 0;
}
void viderBuffer()
{
int c = 0;
while (c != '\n' && c != EOF)
{
c = getchar();
}
}
int lire(char *chaine, int longueur)
{
char *positionEntree = NULL;
if (fgets(chaine, longueur, stdin) != NULL)
{
positionEntree = strchr(chaine, '\n');
if (positionEntree != NULL)
{
*positionEntree = '\0';
}
else
{
viderBuffer();
}
return 1;
}
else
{
viderBuffer();
return 0;
}
}
int verif(char *chaine)
{
char chaine1[200] = "exit";
if(strcmp(chaine1, chaine) == 0)
{
return 0;
}
else
{
return 1;
}
}
Pour l'instant c'est un début mais un problème se pose : il faudrait que le programme fasse écrire -> lire -> écrire -> lire... jusqu'à ce que l'on écrive "exit". Mais il ne faut pas qu'il lise le texte que j'ai écrit ! Dès que le fichier contient un nouvelle ligne commençant par un prénom différent, il l'affiche. C'est ce point là que je ne trouve pas.
Merci d'avance,
Guilhem
Configuration: Windows XP
Firefox 3.5.5