#include #include /* Prend en parametre un entier et un entier a additionner */ int indexcesar(int index, int cesar){ index += cesar; if(index > 25) { index -= 26; } return index; } int main(int argc, char const *argv[]) { int cesar = 1; /* Creation du tableau contenant toutes les lettres de l'alphabet */ char alphabetMajuscule[26] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; char alphabetMinuscule[26] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; /* Creation d'un pointeur de fichier */ FILE* stream = fopen("Etape2.bin","r"); /* S'il y a un probleme dans l'ouverture du fichier renvoie une erreur */ if (ferror(stream)) { perror("Il y a un probleme dans l'ouverture du fichier !"); return EXIT_FAILURE; } /* Creation d'un pointeur de charactere qui alloue en memoire la taille d'un caractere*/ char* zone_char = malloc(sizeof(char)); /* Tant qu'on atteint pas la fin du fichier */ while(!feof(stream)) { /* lecture d'un caractere */ if (fread(zone_char, sizeof(char), 1, stream) != 0) { /* Parcours du tableau pour retrouver la position du caractere*/ int index = 0; for (index; index <= 25; index++) { /* si le caractere est une majuscule */ if (*zone_char == alphabetMajuscule[index]) { /* On rajoute le deplacement dans l'alphabet de cesar et on sort de la boucle */ index = indexcesar(index, cesar); printf("%c", alphabetMajuscule[index]); break; } /* si le caractere est une minuscule */ if (*zone_char == alphabetMinuscule[index]) { /* On rajoute le deplacement dans l'alphabet de cesar et on sort de la boucle */ index = indexcesar(index, cesar); printf("%c", alphabetMinuscule[index]); break; } } /* si la boucle ne s'est jamais arretee, alors ce n'est pas une lettre sinon c'est une lettre et on montre sa nouvelle valeur */ if (index == 26) { printf("%c", *zone_char); } } } fclose(stream); free(zone_char); return EXIT_SUCCESS; }