Exemple #1
0
int choisirMenu(const unsigned int maximum)
{
	int choixJoueur;
	unsigned int compteurErreur;

	compteurErreur = 0;

	do
	{
		if(compteurErreur > 0)
		{
			printf("Veuillez entrer un nombre correct !\n");
			viderBuffer();
		}

		printf("> ");
		scanf("%d", &choixJoueur);

		++compteurErreur;

	} while(choixJoueur < REVENIR_ARRIERE && choixJoueur > maximum);

	viderBuffer();

	return choixJoueur;
}
// Check the value entered by the user and return it
double Affichage::saisieValeur(const double &valeurMin, const double &valeurMax)
{
    double valeurDeRetour= valeurMin-1;
    while(true)
    {

        cout << "   Give a value between " << valeurMin << " and " << valeurMax << ": ";
        cin >> valeurDeRetour;

        if(cin.eof() || cin.bad())
        {
            cerr << "  An internal error happened." << endl;
            if(cin.eof() || valeurDeRetour <= valeurMin || valeurDeRetour >=valeurMax)
            {
                break;
            }
            viderBuffer();
            continue;
        }
        else if(cin.fail() || valeurDeRetour <= valeurMin ||valeurDeRetour >=valeurMax)
        {
            cerr << "  ERROR, incorrect value." << endl;
            viderBuffer();
            continue;
        }
        break;
    }
    return valeurDeRetour;
}
Exemple #3
0
unsigned int demanderConfirmation(const char *message, const unsigned int separation)
{
	int choixJoueur;
	unsigned int compteurErreur;

	compteurErreur = 0;

	if(separation == OUI)
		separationTexte();

	do
	{
		if(compteurErreur > 0)
		{
			printf("Veuillez entrer 0 pour refuser et 1 pour accepter !\n");
			viderBuffer();
		}

		printf("%s\n", message);
		printf("> ");
		scanf("%d", &choixJoueur);

		++compteurErreur;

	} while(choixJoueur != NON && choixJoueur != OUI);

	viderBuffer();

	return choixJoueur;
}
Exemple #4
0
unsigned int choisirMenuSansOperationPossible(const unsigned int maximum)
{
	int choixJoueur;
	unsigned int compteurErreur;

	compteurErreur = 0;

	do
	{
		if(choixJoueur == REVENIR_ARRIERE || (choixJoueur == QUITTER && compteurErreur > 0))
		{
			printf("Operation impossible !\n");
			viderBuffer();
		}
		else if(compteurErreur > 0)
		{
			printf("Veuillez entrer un nombre correct !\n");
			viderBuffer();
		}

		printf("> ");
		scanf("%d", &choixJoueur);

		++compteurErreur;

	}while(choixJoueur < 1 || choixJoueur > maximum);

	viderBuffer();

	return choixJoueur;
}
Exemple #5
0
int saisirEntier(void)
{
	int nombre = -1;
	while(scanf("%d", &nombre) < 1)
		viderBuffer();
	viderBuffer();
	return nombre;
}
Exemple #6
0
void cheat()
{
    int choix = 0;
    
    FctVideEcran();
    
    printf("\n\n\tC'est pas bien de tricher !\n\n");
    printf("Appuyez sur une touche pour continuer...\n\n");
    viderBuffer();
    char tempo = get_one_char();
    FctVideEcran();
    
    do
    {
    
        // Affichage de "CHEAT" en ASCII //
        printf("                 ____ _                _\n                / ___| |__   ___  __ _| |_\n               | |   | '_ \\ / _ \\/ _` | __|\n               | |___| | | |  __/ (_| | |_\n                \\____|_| |_|\\___|\\__,_|\\__|\n\n");
    
        
        printf("\tFaites votre choix :\n\n\n");
        printf("\t1 - Chuck Norris\n");
        printf("\t2 - Bitch Please\n");
        printf("\t3 - God Mode\n");
        printf("\t4 - Very Easy !\n"); // En fait Very Very 2HARD4U !!!
        printf("\t5 - Retour\n\n");
        printf("\t Veuillez entrez votre choix : ");
        
        scanf("%i",&choix);
        
        switch(choix)
        {
            case 1: chucknorris(); break;
            case 2: bitchplease(); break;
            case 3: godmode(); break;
            case 4: veryeasy();break;
            case 5: break;
            default:
                FctVideEcran();
                viderBuffer();
                printf("Erreur: votre choix doit être compris entre 1 et 5\n");
                char tempo = get_one_char();
                FctVideEcran();
                break;
        }
        
        FctVideEcran();
    }while(choix != 5);
}
Exemple #7
0
void  reset()
{
    int choix;
    char reponse;
    
    do
    {
        FctVideEcran();
        viderBuffer();
        
        printf("\n\tÊtes vous sûr de vouloir effacer tous les (misérables) scores effectués jusqu'à ce jour ? Y/N \n\n");
        reponse = get_one_char();
        FctVideEcran();
        if(reponse == 'y' || reponse == 'Y')
        {
            FILE *fichier;
            fichier = fopen("highscore.txt","w");
            fclose(fichier);
            printf("\n\tTous vos scores ont bien été effacés. \n\n");
        }
        else if(reponse == 'n' || reponse == 'N')
        {
            printf("\n\tLes scores n'ont pas été effacés. \n\n");
        }
        else
        {
            printf("\n\tVeuillez entrez un 'y' (yes) ou un 'n' (no)\n\n");
        }
        
        sleep(3);
    }while(reponse != 'y' && reponse != 'Y' && reponse != 'n' && reponse != 'N');

}
Exemple #8
0
void menu_highscore()
{
    int choix;
    
    FctVideEcran();
    
    do
    {
        printf("                _   _ ___ ____ _   _   ____   ____ ___  ____  _____\n               | | | |_ _/ ___| | | | / ___| / ___/ _ \\|  _ \\| ____|\n               | |_| || | |  _| |_| | \\___ \\| |  | | | | |_) |  _|\n               |  _  || | |_| |  _  |  ___) | |__| |_| |  _ <| |___\n               |_| |_|___\\____|_| |_| |____/ \\____\\___/|_| \\_\\_____|\n\n");
        
        printf("\tFaites votre choix :\n\n\n");
        printf("\t1 - Afficher les High Score\n");
        printf("\t2 - Reset\n");
        printf("\t3 - Retour\n\n");
        printf("\t Veuillez entrez votre choix : ");
        
        scanf("%i",&choix);
        
        switch(choix)
        {
            case 1: afficher_highscore(); break;
            case 2: reset(); break;
            case 3: break;
            default:
                FctVideEcran();
                viderBuffer();
                printf("Erreur: votre choix doit être compris entre 1 et 3\n");
                char tempo = get_one_char();
                FctVideEcran();
                break;
        }
        
        FctVideEcran();
    }while(choix != 3);
}
Exemple #9
0
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;
    }
}
Exemple #10
0
void afficher_highscore()
{
    int i = 1;
    char tempo;
    char chaine[TAILLE_MAX] = "";
    
    FILE* fichier = NULL;
	fichier = fopen("highscore.txt","r");
    
	if (fichier == NULL)
    {
        FctVideEcran();
        printf("\n\n\tImpossible d'ouvrir le fichier highscore.txt\n\n");
        printf("Appuyez sur une touche pour revenir aux options...");
        viderBuffer();
        tempo = get_one_char();
        FctVideEcran();
    }
    else
    {
        FctVideEcran();
        
        printf("                _   _ ___ ____ _   _   ____   ____ ___  ____  _____\n               | | | |_ _/ ___| | | | / ___| / ___/ _ \\|  _ \\| ____|\n               | |_| || | |  _| |_| | \\___ \\| |  | | | | |_) |  _|\n               |  _  || | |_| |  _  |  ___) | |__| |_| |  _ <| |___\n               |_| |_|___\\____|_| |_| |____/ \\____\\___/|_| \\_\\_____|\n\n");
        
        sleep(1);
        
        while (fgets(chaine, TAILLE_MAX, fichier) != NULL)
        {
            printf("\t%i\t--\t%s",i, chaine);
            i++;
            
            sleep(1);
        }
        
        printf("\n\nAppuyez sur une touche pour revenir aux options...");
        viderBuffer();
        tempo = get_one_char();
        FctVideEcran();
    }
}
//on recupere le texte du clavier
// 1 - OK
// 0 - ERROR
int lire(char *chaine, int longueur){
    char *positionEntree = NULL;
	//s'il n'est pas nul on remplace le retour chariot
    if (fgets(chaine, (longueur+1), stdin) != NULL){
        positionEntree = strchr(chaine, '\n');
        if (positionEntree != NULL){
            *positionEntree = '\0';
        }else{
            viderBuffer();
        }
		//Si on a un caractere vide -> erreur
		if(*chaine==' '){
			return 0;
		}else{
			return 1;
		}
    //sinon on vide quand meme le buffer et on renvoi 0 pour signaler le probleme
    }else{
        viderBuffer();
        return 0;
    }
}
//on demande a l'utilisateur de rentrer les faits qu'il veut pour
//le mode test du moteur
ST_CONTENT * chargerFaitDepuisConsole(){
	ST_CONTENT *fait = NULL;
	long nbFait;
	long i = 0;
	char temp;
	// on demande le nombre de faits
	printf("\n\tVeuillez entrer le nombre de fait a enregistrer : ");
	viderBuffer();
	nbFait = lireDouble();
	//pour le nombre de faits on cree des ST_CONTENT de ces faits rentre par l'utilisateur
	for(i = 0;i<nbFait;i++){
		printf("\nVeuillez entrer la lettre designant le fait n= %ld : ",i);
		temp = getc(stdin);
		viderBuffer();
		newContent(temp,1,&fait);
	}
	printf("[INFO] Enregistrement reussi !\n");
	//retour au menu
	printf("\t->Appuyer sur 'entree' pour revenir au menu");
	getchar();
	return fait;
}
//On charge depuis le fichier "fait.txt" dans bin les fait pour
//le mode test du moteur
ST_CONTENT * chargerFaitDepuisFichier(){
	ST_CONTENT *fait = NULL;
	FILE *fp;
	int temp = 0;
	char tp;
	int cp = 0;
	int nb = 0;
	//ouverture du fichier
	fp = fopen("faits.txt","r");
	if (fp == NULL){
		printf("Le fichier n'existe pas !Veuillez recommencer depuis le debut.\n");
		return NULL;
	}
	//tant qu'on est pas à la fin du fichier
	do{
		nb = 0;
		//si on est a la fin du fichier
		if(feof(fp)!=0){
			break;
		}
		//on enregistre par ligne le fait
		temp = fgetc(fp);
		tp = temp;
		newContent(tp,1,&fait);
		//on va jusqu'a la fin de la ligne ou du fichier
		while (feof(fp)==0 && temp != '\n' && temp != ';'){
			temp = fgetc(fp);
			nb++;
		}
		//si on est sur le ";" soit on saute la ligne soit c'est la fin du fichier
		if(temp == ';'){
			//on avance jusqu'a la fin de ligne ou la fin de fichier
			while (feof(fp)==0 && temp != '\n'){
				temp = fgetc(fp);
			}
		}
		cp++;
		//s'il y a encore une ligne
	}while(temp== '\n');
	fclose(fp);
	printf("[INFO] Chargement de %d faits reussi !\n",cp);
	viderBuffer();
	//retour au menu
	printf("\t->Appuyer sur 'entree' pour revenir au menu");
	getchar();
	return fait;
}
Exemple #14
0
//-----------------------------------------------------------------------------
// Description : Modiffier le contenu de l'ecole
// parametre   : * sur struct ecole_t
void ft_modifierEcole(ecole_t *ecole)
{
    int choix;      //Variable pour le choix du switch

    //Menu avec choix et test d'entrée valide
    do
    {
        ft_afficheEntete(*ecole);
        printf("\n\n");
        printf("\t\t MODIFICATION DE L'ECOLE :\n");
        printf("\t\t===========================");
        printf("\n\n\t\t1 *  Nom de l'ecole");
        printf("\n\n\t\t2 *  Nom du directeur");
        printf("\n\n\t\t3 *  Coordonnees de l'ecole");
        printf("\n\n\n\t\t4 *  Toutes les informations");
        printf("\n\n\n\n\t\t0 *  RETOUR\n\n\n\n\n\t\t  >>");
        scanf("%d",&choix);
        viderBuffer();
    }while((choix>4) && (choix<0));

    //Modification de ecole en fonction du choix de l'utilisateur
    switch(choix)
    {
    case 0:
        // Retour menu parent
        break;
    case 1:
        printf("\nVeuillez entrer le nom de l'ecole :");
        lireChaine(ecole->nom, MAX_CHAR);
        break;
    case 2:
        printf("\nVeuillez entrer le nom du directeur :");
        lireChaine(ecole->directeur, MAX_CHAR);
        break;
    case 3:
        ft_modifierCoord(&ecole->adresse);
        break;
    case 4:
        printf("\nVeuillez entrer le nom de l'ecole :");
        lireChaine(ecole->nom, MAX_CHAR);
        printf("\nVeuillez entrer le nom du directeur :");
        lireChaine(ecole->directeur, MAX_CHAR);
        ft_modifierCoord (&ecole->adresse);
        break;
    }
}
Exemple #15
0
void options()
{
    int choix = 0;
    

    FctVideEcran();
    
    do
    {
        // Affichage de "OPTIONS" en ASCII //
        
        printf("                        _   _\n             ___  _ __ | |_(_) ___  _ __  ___\n            / _ \\| '_ \\| __| |/ _ \\| '_ \\/ __|\n           | (_) | |_) | |_| | (_) | | | \\__ \\\n            \\___/| .__/ \\__|_|\\___/|_| |_|___/\n                 |_|\n\n");
    
        printf("\tFaites votre choix :\n\n\n");
        printf("\t1 - High Score\n");
        printf("\t2 - Credits\n");
        printf("\t3 - Cheat Codes\n");
        printf("\t4 - Retour\n\n");
        printf("\t Veuillez entrez votre choix : ");
    
        scanf("%i",&choix);
    
    
        switch(choix)
        {
            case 1: menu_highscore(); break;
            case 2: credits(); break;
            case 3: cheat(); break;
            case 4: break;
            default:
                FctVideEcran();
                viderBuffer();
                printf("Erreur: votre choix doit être compris entre 1 et 4\n");
                char tempo = get_one_char();
                FctVideEcran();
                break;
        }
    
        FctVideEcran();
    }while(choix != 4);
}
Exemple #16
0
void ajouter_contact(struct Fiche *contact, int capacite)
{
    char buff[256];
    int i,j;

    for(i=0; i<capacite; i++)
        if(contact[i].id==0)
        {
            contact[i].id=i+1;
            break;
        }
    viderBuffer();
    printf("Nom: ");
    contact[i].nom=longueur_chaine(get_str(buff,256));

    for(j=0; contact[i].nom[j]; j++)
    {
        if(j==0)
        {
            contact[i].nom[j]=toupper(contact[i].nom[j]);
        }
        else
        {
            contact[i].nom[j]=tolower(contact[i].nom[j]);
        }
    }
    printf("Prenom: ");
    contact[i].prenom=longueur_chaine(get_str(buff,256));
    printf("Sexe: ");
    contact[i].sexe=longueur_chaine(get_str(buff,256));
    printf("Date de naissance JJ/MM/AAAA : ");
    contact[i].date_naissance=s_naissance(get_str(buff,256));
    printf("Email: ");
    contact[i].email=longueur_chaine(get_str(buff,256));
    printf("Telephone fixe: ");
    contact[i].numfix=longueur_chaine(get_str(buff,256));
    printf("Telephone mobile: ");
    contact[i].nummobil=longueur_chaine(get_str(buff,256));
    printf("Adresse: ");
    contact[i].adresse=longueur_chaine(get_str(buff,256));
}
void *connection_handler(void *socket_desc) {
    int debut=-1;
    char mesg[256];
    int sock = *(int*)socket_desc;
    char pseudo[10];
    int pseudoCorrect=0;

    //printf("Ecrivez votre message...\n");

    while(1)
    {
        memset(mesg,0,sizeof(mesg));
        fgets(mesg, 256, stdin);
        //Reinitialisation timer
        temps=0;
        //Déconnexion
        if(strcmp(mesg,"/q\n")==0) {
            printf("\nfin de la reception.\n");
            close(socket_desc);
            //on libere la memoire
            free(socket_desc);
            exit(0);
        }
        //Message trop long
        if(strchr(mesg,'\n')==NULL) {
            viderBuffer();
            printf("Message trop long !\n");
        }
        else {
            //envoi des données au serveur
            if ((write(sock, mesg, strlen(mesg))) < 0) {
                perror("erreur : impossible d'ecrire le message destine au serveur.");
                exit(1);
            }
        }
        //printf("Ecrivez votre message...\n");
    }
    return 0;
}
int main(int argc, char *argv[])
{
    SDL_Init(SDL_INIT_VIDEO);
    TTF_Init();
    SDL_Surface* ecran = NULL, *ecranSurface = NULL;
    //SDL_Surface *ecran2;
    //ecran = SDL_CreateRGBSurface(0,700,700,32,0xff000000,0x00ff0000,0x0000ff00,0x000000ff);
    SDL_Rect origine;
    origine.x = 0;
    origine.y = 0;

    /*TTF_Font *police = NULL;
    SDL_Color couleurNoire = {0, 0, 0};
    police = TTF_OpenFont("annexes/Arial.ttf", 18);
    texte = TTF_RenderText_Blended(police, "Projet d'info !!!!!!!!!!!!!", couleurNoire);
    position.x = 10;
    position.y = 10;
    SDL_BlitSurface(texte, NULL, ecran, &position);*/

    ecranSurface = SDL_CreateRGBSurface(SDL_HWSURFACE, 0, 0, 32, 0, 0, 0, 0); // On cre notre surface de dpart : un rectangle de taille nulle !
    int i;

    char * nomImages[NB_IMAGES] = { "M", "M1", "M2", "M3","M3b", "M4", "M5", "M6", "M7", "M7b" ,"M8", "M9", "M10", "M11", "M12", "M13", "M14", "T1", "T2", "T3", "RA", "RB", "RC", "RD", "RE", "Val"};
    /*char tmp[TAILLE_NOM] ="";
    SDL_Surface * tabImages[NB_IMAGES];
    for ( i = 0 ; i < NB_IMAGES ; i++ )
    {
    	strcat(tmp,CHEMIN);
    	strcat(tmp,nomImages[i]);
    	strcat(tmp,".png");
    	printf("%s\n",tmp);
    	tabImages[i] = IMG_Load(tmp);
    	strcpy(tmp,"");
    }

    for ( i = 0 ; i < NB_IMAGES ; i++ )
    {
    	//position.x=30*i%610;
    	//position.y=30*i/610;
    	position.x=30*i;
    	position.y=30*i;
    	SDL_BlitSurfaceSecure(tabImages[i], NULL, ecran, &position);
    }*/
    //tabImage[PIETON]

    int nbStation, numDep, numArr;
    char nomDep[TAILLE_NOM], nomArr[TAILLE_NOM];
    char nom[] =  "graphes/metro2012.csv";
    Station * plan = NULL;
    puts("lecture ...");
    plan = lecture(nom, &nbStation);

    ListeRes resultat = NULL;
    ListeChangement final = NULL;

    puts("Choix de la station de départ :");
    fgets(nomDep,TAILLE_NOM,stdin);
    nomDep[strlen(nomDep)-1]='\0';
    numDep = nomToNum(nomDep, plan, nbStation);

    viderBuffer();

    puts("Choix de la station d'arrivée :");
    fgets(nomArr,TAILLE_NOM,stdin);
    nomArr[strlen(nomArr)-1]='\0';
    numArr = nomToNum(nomArr, plan, nbStation);

    puts("aStar ...");
    resultat = aStar(numDep, numArr, plan);
    afficherRes(resultat);

    puts("Changement :");
    final = traitementAffichage(resultat);
int main(int argc, char **argv) {

    int 	socket_descriptor, 	/* descripteur de socket */
            *new_sock,
            longueur; 		/* longueur d'un buffer utilisé */
    sockaddr_in adresse_locale; 	/* adresse de socket local */
    hostent *	ptr_host; 		/* info sur une machine hote */
    servent *	ptr_service; 		/* info sur service */
    char 	buffer[280];
    char *	prog; 			/* nom du programme */
    char *	host; 			/* nom de la machine distante */

    if (argc != 2) {
        perror("Usage : client <adresse-serveur>");
        exit(1);
    }

    prog = argv[0];
    host = argv[1];

    printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

    printf("- Nom de l'executable : %s \n", prog);
    printf("- Adresse du serveur  : %s \n", host);

    if ((ptr_host = gethostbyname(host)) == NULL) {
        perror("erreur : impossible de trouver le serveur a partir de son adresse.");
        exit(1);
    }

    /* copie caractere par caractere des infos de ptr_host vers adresse_locale */
    bcopy((char*)ptr_host->h_addr, (char*)&adresse_locale.sin_addr, ptr_host->h_length);
    adresse_locale.sin_family = AF_INET; /* ou ptr_host->h_addrtype; */

    /* 2 facons de definir le service que l'on va utiliser a distance */
    /* (commenter l'une ou l'autre des solutions) */

    /*-----------------------------------------------------------*/
    /* SOLUTION 1 : utiliser un service existant, par ex. "irc" */
    /*
    if ((ptr_service = getservbyname("irc","tcp")) == NULL) {
    perror("erreur : impossible de recuperer le numero de port du service desire.");
    exit(1);
    }
    adresse_locale.sin_port = htons(ptr_service->s_port);
    */
    /*-----------------------------------------------------------*/

    /*-----------------------------------------------------------*/
    /* SOLUTION 2 : utiliser un nouveau numero de port */
    adresse_locale.sin_port = htons(5000);
    /*-----------------------------------------------------------*/

    printf("- Numero de port pour la connexion au serveur : %d \n\n", ntohs(adresse_locale.sin_port));

    /* creation de la socket */
    if ((socket_descriptor = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
        perror("erreur : impossible de creer la socket de connexion avec le serveur.");
        exit(1);
    }

    /* tentative de connexion au serveur dont les infos sont dans adresse_locale */
    if ((connect(socket_descriptor, (sockaddr*)(&adresse_locale), sizeof(adresse_locale))) < 0) {
        perror("erreur : impossible de se connecter au serveur.");
        exit(1);
    }

    printf("Connexion etablie avec le serveur :) \n\n");

    //Timer
    temps=0;
    //Thread timer
    pthread_t timer_thread;
    new_sock = malloc(1);
    *new_sock = socket_descriptor;

    if( pthread_create( &timer_thread, NULL,  timer,(void *) new_sock) < 0) {
        perror("Impossible de creer le thread timer");
        return 1;
    }

    int i;
    int pseudoLibre=0;
    char pseudo[10];
    int pseudoCorrect=0;
    int debutRead=-1;

    printf("\n\n\n");

    printf("-------------------------\n");
    printf("| Bienvenue sur Tchaton |\n");
    printf("-------------------------\n");

    printf("\n\n\n");

    if((longueur = read(socket_descriptor, buffer, sizeof(buffer))) > 0) {
        if(strcmp(buffer,"Serveur sature\n")==0) {
            printf("\nDeconnexion\n");
            close(socket_descriptor);
            exit(0);
        }
    }


    while(debutRead==-1) {
        //Controle du pseudo (pas de caracteres spéciaux et pseudo différent de 'q'
        while(pseudoCorrect==0) {
            memset(pseudo,0,sizeof(pseudo));
            memset(buffer,0,sizeof(buffer));
            printf("Quel est votre pseudo ? (< 10 et sans espace) : ");
            fgets(pseudo, 10, stdin);
            //Reinitialisation timer
            temps=0;
            //Déconnexion
            if(strcmp(pseudo,"/q\n")==0) {
                printf("\nfin de la reception.\n");
                close(socket_descriptor);
                exit(0);
            }
            else if(strchr(pseudo,'\n')==NULL) {
                viderBuffer();
                printf("Pseudo trop long !\n");
            }
            else {
                if(strcmp(pseudo,"q\n")==0 || strchr(pseudo,'/')!=NULL || strchr(pseudo,' ')!=NULL) {
                    printf("Pseudo incorrect !\n");
                }
                else pseudoCorrect=1;
            }
        }

        //Envoi pseudo
        if ((write(socket_descriptor, pseudo, strlen(pseudo))) < 0) {
            perror("erreur : impossible d'envoyer le pseudo au serveur.");
            exit(1);
        }
        //Retour serveur
        if((longueur = read(socket_descriptor, buffer, sizeof(buffer))) > 0) {
            write(1,buffer,longueur);
            if(strcmp(buffer,"Pseudo Ok.\n")==0) {
                printf("------------------------\n");
                printf("Liste des connectés :\n");
                debutRead=0;
            }
        }
        pseudoCorrect=0;
    }

    //Thread d'écriture
    pthread_t sniffer_thread;

    if( pthread_create( &sniffer_thread, NULL,  connection_handler, (void*) new_sock) < 0) {
        perror("Impossible de creer le thread");
        return 1;
    }

    while(1) {
        if((longueur = read(socket_descriptor, buffer, sizeof(buffer))) > 0) {
            write(1,buffer,longueur);
            memset(buffer,0,sizeof(buffer));
            //printf("Ecrivez votre message...\n");
        }
    }
}
Exemple #20
0
//-----------------------------------------------------------------------------
// Description : Modiffier le contenu de struct ecole_t
//               appelle ft_viderListe
// parametre   : * sur struct ecole_t
void ft_supprimerClasse(ecole_t *ecole)
{
    int choix  = 0;         // Choix du menu
    int souxchoix  = 0;     // Choix sous menu

    //menu liste des classes
    //(pour le moment les 5 classes doivent etre existante sous peine d'erreur)
    do {
        ft_afficheEntete(*ecole);
        printf("\n\n");
        printf("\t\tQuel classe souhaitez-vous Supprimer :\n\n");
        printf("\t\t1 *  CP\n\n");
        printf("\t\t2 *  CE1\n\n");
        printf("\t\t3 *  CE2\n\n");
        printf("\t\t4 *  CM1\n\n");
        printf("\t\t5 *  CM2\n\n");
        printf("\t\t0 *  Retour\n\n\n\n\n\t\t  >>");
        scanf("%d", &choix);
        viderBuffer();
    } while ((choix<0) && (choix>5));

    switch(choix)
    {
        case 1:
            if (ecole->tab_cp[0]!=NULL && ecole->tab_cp[1]!=NULL)
            {
                do {
                    ft_afficheEntete(*ecole);
                    printf("\n\n\t\tIl y a deux classe de CP\n");
                    printf("\t\tLaquelle voulez vous supprimer :\n\n");
                    printf("\t\t1 *  CP_1\n\n");
                    printf("\t\t2 *  CP_2\n\n\n\n");
                    printf("\t\t0 *  Retour\n\n\n\n\n\t\t  >>");
                    scanf("%d", &souxchoix);
                    viderBuffer();
                } while ((souxchoix<0) && (souxchoix>2));
                if (souxchoix==1)
                    ft_viderListe(&ecole->tab_cp[0]->ptr_eleve);
                if (souxchoix==2)
                    ft_viderListe(&ecole->tab_cp[1]->ptr_eleve);
            }
            if (ecole->tab_cp[0]!=NULL && ecole->tab_cp[1]==NULL)
                ft_viderListe(&ecole->tab_cp[0]->ptr_eleve);
            if (ecole->tab_cp[0]==NULL && ecole->tab_cp[1]==NULL)
                printf("\n\n\t\tIl n'a pas de classe de CP\n\n");
            break;
        case 2:
            if (ecole->tab_ce1[0]!=NULL && ecole->tab_ce1[1]!=NULL)
            {
                do {
                    ft_afficheEntete(*ecole);
                    printf("\n\n\t\tIl y a deux classe de CE1\n");
                    printf("\t\tLaquelle voulez vous supprimer :\n\n");
                    printf("\t\t1 *  CE1_1\n\n");
                    printf("\t\t2 *  CE1_2\n\n\n\n");
                    printf("\t\t0 *  Retour\n\n\n\n\n\t\t  >>");
                    scanf("%d", &souxchoix);
                    viderBuffer();
                } while ((souxchoix<0) && (souxchoix>2));
                if (souxchoix==1)
                    ft_viderListe(&ecole->tab_ce1[0]->ptr_eleve);
                if (souxchoix==2)
                    ft_viderListe(&ecole->tab_ce1[1]->ptr_eleve);
            }
            if (ecole->tab_ce1[0]!=NULL && ecole->tab_ce1[1]==NULL)
                ft_viderListe(&ecole->tab_ce1[0]->ptr_eleve);
            if (ecole->tab_ce1[0]==NULL && ecole->tab_ce1[1]==NULL)
                printf("\n\n\t\tIl n'a pas de classe de CE1\n\n");
            break;
        case 3:
            if (ecole->tab_ce2[0]!=NULL && ecole->tab_ce2[1]!=NULL)
            {
                do {
                    ft_afficheEntete(*ecole);
                    printf("\n\n\t\tIl y a deux classe de CE2\n");
                    printf("\t\tLaquelle voulez vous supprimer :\n\n");
                    printf("\t\t1 *  CE2_1\n\n");
                    printf("\t\t2 *  CE2_2\n\n\n\n");
                    printf("\t\t0 *  Retour\n\n\n\n\n\t\t  >>");
                    scanf("%d", &souxchoix);
                    viderBuffer();
                } while ((souxchoix<0) && (souxchoix>2));
                if (souxchoix==1)
                    ft_viderListe(&ecole->tab_ce2[0]->ptr_eleve);
                if (souxchoix==2)
                    ft_viderListe(&ecole->tab_ce2[1]->ptr_eleve);
            }
            if (ecole->tab_ce2[0]!=NULL && ecole->tab_ce2[1]==NULL)
                ft_viderListe(&ecole->tab_ce2[0]->ptr_eleve);
            if (ecole->tab_cm2[0]==NULL && ecole->tab_cm2[1]==NULL)
                printf("\n\n\t\tIl n'a pas de classe de CE2\n\n");
            break;
        case 4:
            if (ecole->tab_cm1[0]!=NULL && ecole->tab_cm1[1]!=NULL)
            {
                do {
                    ft_afficheEntete(*ecole);
                    printf("\n\n\t\tIl y a deux classe de CM1\n");
                    printf("\t\tLaquelle voulez vous supprimer :\n\n");
                    printf("\t\t1 *  CM1_1\n\n");
                    printf("\t\t2 *  CM1_2\n\n\n\n");
                    printf("\t\t0 *  Retour\n\n\n\n\n\t\t  >>");
                    scanf("%d", &souxchoix);
                    viderBuffer();
                } while ((souxchoix<0) && (souxchoix>2));
                if (souxchoix==1)
                    ft_viderListe(&ecole->tab_cm1[0]->ptr_eleve);
                if (souxchoix==2)
                    ft_viderListe(&ecole->tab_cm1[1]->ptr_eleve);
            }
            if (ecole->tab_cm1[0]!=NULL && ecole->tab_cm1[1]==NULL)
                ft_viderListe(&ecole->tab_cm1[0]->ptr_eleve);
            if (ecole->tab_cm1[0]==NULL && ecole->tab_cm1[1]==NULL)
                printf("\n\n\t\tIl n'a pas de classe de CM1\n\n");
            break;
        case 5:
            if (ecole->tab_cm2[0]!=NULL && ecole->tab_cm2[1]!=NULL)
            {
                do {
                    ft_afficheEntete(*ecole);
                    printf("\n\n\t\tIl y a deux classe de CM2\n");
                    printf("\t\tLaquelle voulez vous supprimer :\n\n");
                    printf("\t\t1 *  CM2_1\n\n");
                    printf("\t\t2 *  CM2_2\n\n\n\n");
                    printf("\t\t0 *  Retour\n\n\n\n\n\t\t  >>");
                    scanf("%d", &souxchoix);
                    viderBuffer();
                } while ((souxchoix<0) && (souxchoix>2));
                if (souxchoix==1)
                    ft_viderListe(&ecole->tab_cm2[0]->ptr_eleve);
                if (souxchoix==2)
                    ft_viderListe(&ecole->tab_cm2[1]->ptr_eleve);
            }
            if (ecole->tab_cm2[0]!=NULL && ecole->tab_cm2[1]==NULL)
                ft_viderListe(&ecole->tab_cm2[0]->ptr_eleve);
            if (ecole->tab_cm2[0]==NULL && ecole->tab_cm2[1]==NULL)
                printf("\n\n\t\tIl n'a pas de classe de CM2\n\n");
            break;
        default:
            printf("\n\n\t\tCe choix n'est pas valide, recommencez\n\n");
            break;
    }
}
Exemple #21
0
///------------------------------------------------------------------------------------------------
/// Fonction : Permet de modifier une structure de type coordonnées
/// paramètre en mise à jour : coord
void ft_modifierCoord(coord_t *coord)
{
    int choix;   //Variable pour le choix du switch

    //Menu avec choix et test d'entrée valide
    do
    {
        printf("\n\n");
        printf("\t\t MODIFICATION DES COORDONNES :");
        printf("\n\t\t===============================");
        printf("\n\n\t\t1 *  Numero de voie");
        printf("\n\n\t\t2 *  Nom de voie");
        printf("\n\n\t\t3 *  Code postal");
        printf("\n\n\t\t4 *  Ville");
        printf("\n\n\t\t5 *  Numero de telephone");
        printf("\n\n\n\t\t6 *  Toutes les informations");
        printf("\n\n\n\n\t\t0 *  RETOUR\n\n\n\n\n\t\t  >> ");
        scanf("%d",&choix);
        viderBuffer();
    }
    while((choix>6) && (choix<0));

    //Modification de A en fonction du choix de l'utilisateur
    switch(choix)
    {
    case 0:
        break;
    case 1:
        printf("\n\t=> veuillez entrer le numero de voie      : ");
		lireChaine(coord->num,4);
		while (Controle_IntSaisie(coord->num,strlen(coord->num))==0)
		{
			printf("\n\t=> numero invalide, le ressaisir svp ");
			printf("\n\tnumero      : ");
			lireChaine(coord->num,4);
		}
        break;

    case 2:
        printf("\n\t=> veuillez entrer le nom de la voie      : ");
        lireChaine(coord->rue,MAX_CHAR);
        break;

    case 3:
		printf("\n\t=> veuillez entrer le code postal         : ");
		lireChaine(coord->postal,6);
		while (Controle_IntSaisie(coord->postal,5)==0)
		{
			printf("\n\t=> code postal invalide, le ressaisir svp ");       
			printf("\n\tcode postal : ");
			lireChaine(coord->postal,6);
		}
        break;

    case 4:
        printf("\n\t=> veuillez entrer le nom de la ville     : ");
        lireChaine(coord->ville,MAX_CHAR);
        break;

    case 5:
		printf("\n\t=> veuillez saisir le numero de telephone (ex : 0626542110) : ");
		lireChaine(coord->tel,11);
		while (!Controle_Telephone(coord->tel))
		{
			printf("\n\t=> numero de telephone invalide, le ressaisir svp ");       
			printf("\n\tnumero de telephone des parents (ex : 0626542110) : ");
			lireChaine(coord->tel,11);
		}
        break;

    case 6:
        ft_saisirCoord(coord);
        break;
    }
}
Exemple #22
0
void modifier_contact(struct Fiche *contact,int i)
{
    int choix,j;
    char buff[256];
    i--;
    printf("Que souhaitez vous modifier: \n");
    printf("1-Nom\n");
    printf("2-Prenom\n");
    printf("3-Sexe\n");
    printf("4-Date de naissance\n");
    printf("5-Email\n");
    printf("6-Telephone fixe\n");
    printf("7-Telephone mobile\n");
    printf("8-Adresse\n");
    printf("9-Annuler\n");
    printf("Votre choix: ");
    scanf("%d",&choix);
    viderBuffer();
    switch(choix)
    {
    case 1:
        printf("Nom: ");
        contact[i].nom=longueur_chaine(get_str(buff,256));
        for(j=0; contact[i].nom[j]; j++)
        {
            if(j==0)
            {
                contact[i].nom[j]=toupper(contact[i].nom[j]);
            }
            else
            {
                contact[i].nom[j]=tolower(contact[i].nom[j]);
            }
        }

        break;
    case 2:
        printf("Prenom: ");
        contact[i].prenom=longueur_chaine(get_str(buff,256));
        break;
    case 3:
        printf("Sexe: ");
        contact[i].sexe=longueur_chaine(get_str(buff,256));
        break;
    case 4:
        printf("Date de naissance JJ/MM/AAAA : ");
        contact[i].date_naissance=s_naissance(get_str(buff,256));
        break;
    case 5:
        printf("Email: ");
        contact[i].email=longueur_chaine(get_str(buff,256));
        break;
    case 6:
        printf("Telephone fixe: ");
        contact[i].numfix=longueur_chaine(get_str(buff,256));
        break;
    case 7:
        printf("Telephone mobile: ");
        contact[i].nummobil=longueur_chaine(get_str(buff,256));
        break;
    case 8:
        printf("Adresse: ");
        contact[i].adresse=longueur_chaine(get_str(buff,256));
        break;
    case 9:
        printf("Vous avez choisi de ne rien modifier\n");
        break;
    default :
        printf("Ce choix n'existe pas\n");
        break;
    }
}