int main() { char str[MAX_LONG_NOM + 1]; char p[MAX_LONG_POSTE + 1]; int i = 0; employe y[30]; lireFichier(EMP, y, &i); for ( ; i>0; i--) { getPoste(y[i-1].poste, p); printf("\nEmploye #%d - Nom: %s", i, y[i-1].nom); printf("\nEmploye #%d - Poste: %s", i, p); printf("\nEmploye #%d - Heures: %4.1fh par semaine", i, y[i-1].heures); printf("\nEmploye #%d - Taux: %5.2f$ de l'heure", i, y[i-1].taux); printf("\n"); } return 0; }
/*! \brief Fonction principale: on peut choisir le nombre de points * en utilisant l'option "-nX" où X est un entier strictement * positif. * \remark Mettre opterr a 0 equivaut a supprimer volontairement les messages d'erreur renvoyes par getopt * lors de la lecture d'options non prevus sur la ligne de commande. Dans ces cas, l'erreur est traitee grace au * fait que getopt retourne la valeur '?', qui est donc traitee a part * \remark "n:" signifie que l'option n s'accompagne de la lecture immediate d'une valeur. Il ne faut pas * laisser d'espace entre -n et le nombre tape. Exemple: two -n1000.\par * La lecture est effectuee par un sscanf (lecture d'une chaine supposee formattee) sur l'argument ad hoc, optarg, * declare dans les routines de lecture de la ligne de commande. */ int main(int argc, char **argv) { int c; opterr = 0; while ((c = getopt(argc, argv, "n:f:?h")) != EOF) { switch (c) { case 'n': if ((sscanf(optarg, "%d", &nbPoints) != 1) || nbPoints <= 0) nbPoints = 50; break; case 'f': if ((sscanf(optarg, "%d", &nbPoints) != 1) || nbPoints <= 0) nbPoints = 50; break; case 'h': case '?': printf("use option -nX or -fX (no space), with 0 < X.\n"); return EXIT_SUCCESS; break; default : printf("Shouldn't be here, really...\n"); break; } } assert(nbPoints > 0); T = (vertex *) malloc(sizeof(vertex)*nbPoints); assert(T != NULL); glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(5,5); glutInitWindowSize(300,300); glutCreateWindow("fenetre"); lireFichier("coord2.txt"); winInit(); selectPoints(); positionPointsParRapportPolygone(); glutDisplayFunc(display); glutMainLoop(); return EXIT_SUCCESS; }
//appelle les différentes fonctions du programme void analyserLecture(char* lecture){ if(!strncmp("creation_repertoire ", lecture, 20)){ lecture = lecture + 20; if (verifierCheminAbsolu(lecture) && verifierExisteDeja(lecture)){ creerRepertoire(lecture); } }else if(!strncmp("suppression_repertoire ", lecture, 23)){ lecture = lecture + 23; supprimerRepertoire(lecture); }else if(!strncmp("creation_fichier ", lecture, 17)){ lecture = lecture + 17; if (verifierFicLongueur(lecture)){ char * contenu = strchr(lecture, ' '); char nom[1000] = {'\0'}; int lenContenu = strlen(contenu); int len = strlen(lecture); int pos = len - lenContenu; strncpy(nom, lecture, pos); contenu++; if (verifierExisteDeja(nom) && verifierCheminAbsolu(nom)){ creerFichier(nom, contenu); } } }else if(!strncmp("suppression_fichier ", lecture, 20)){ lecture = lecture + 20; supprimerRepertoire(lecture); }else if(!strncmp("lire_fichier ", lecture, 13)){ lecture = lecture + 13; lireFichier(lecture); }else{ printf("Commande invalide\n"); } return; }
int main(int argc, char **argv) { int c; int pol,conv; int option1 = 0, option2 = 0, option3 = 0, option4 = 0; int nbPoints = 50; vertex *v; opterr = 0; while ((c = getopt(argc, argv, "1i:2o:34n:")) != EOF) { switch (c) { case '1': option1 = 1; break; case '2': option2 = 1; break; case '3': option3 = 1; break; case '4': option4 = 1; break; case 'n': if ((sscanf(optarg, "%d", &nbPoints) != 1) || nbPoints <= 0) nbPoints = 50; break; case 'o': /*verifier non null*/ out = optarg; break; case 'i': /*verifier non null*/ in = optarg; break; case 'h': case '?': printf("-1 partie 1 du tp\n"); printf("-2 partie 2 du tp\n"); printf("-3 partie 3 du tp\n"); printf("-ichaine ouvre le fichier \"chaine\" en lecture \n"); printf("-ochaine ouvre le fichier \"chaine\" en écriture \n"); return EXIT_SUCCESS; break; default : printf("Shouldn't be here, really...\n"); break; } } glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(5,5); glutInitWindowSize(500,500); glutCreateWindow("fenetre"); definitionFenetre(0, 500, 0, 500, 10); winInit(); if(option1 && out != NULL) { glutDisplayFunc(display); glutMouseFunc(coordonnesPoint); ecrireFichier(out, &P); } else if(option2 && in != NULL) { lireFichier(in, &P); assert(P.p != NULL); pol = controlePolygoneSimple(); printf("controlePolygoneSimple : %d\n", pol); //glutDisplayFunc(displayPolygone); } else if(option3 && in != NULL) { lireFichier(in, &P); assert(P.p != NULL); if(controlePolygoneSimple()) conv = estConvexe(); } else if(option4 && in != NULL) { lireFichier(in, &P); assert(P.p != NULL); ALLOUER(v,nbPoints); selectPoints (v, nbPoints); if(controlePolygoneSimple() && estConvexe()) positionPointsParRapportPolygone(v, nbPoints); free(v); } glutMainLoop(); clearFenetre(); return EXIT_SUCCESS; }