Bonjour,
Je souhaite encoder une chaine de caractère, passer en argument, en ROT13.
Et encoder un fichier.txt, passer en argument et sauvegarder le resultat dans fichier.rot13

Je crois qu'il est possible d'utiliser l'API Win32, GIT et CMAKE mais je ne sais pas le faire.
J'ai fait 2 programmes mais j'aimerai bien faire un choix
1 - Chiffre
2 - Dechiffre

Voici ce que j'ai fait, avec beaucoup de difficulté.
Pouvez-vous m'aider pour la seconde partie, à savoir, quand c'est un fichier.txt qui est passé en argument.

Merci

CHIFFRAGE

Code C : Sélectionner tout - Visualiser dans une fenêtre à part
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
#include <stdio.h>
#include <string.h>
 
int main(int argc, char** argv)
{
    char* MotACoder = argv[1];	
	int key = 13;
 
    // Toutes les lettres du Mot à Coder
 
    for (int n = 0, len = strlen(MotACoder); n < len; n++)
    {
        int currentLetter = MotACoder[n];
 
        char cipher = currentLetter + key;
 
        // On vérifie que la lettre suivant ne dépassera pas 26
		// Ou n'est pas une lettre ASCII
		// Si c'est le cas, on applique %26 pour revenir dans le groupe de lettre
 
        if ((currentLetter - 'a') + key > 26)
        {
            key = (currentLetter - 'a') + key) % 26;
            cipher = 'a' + key;
        }
 
		// On affiche le codage
        printf("%c", cipher);
 
        // On remet Key à 13
		// On passe à la lettre suivante
        key = 13;
        }
    }
    printf("\n");
    return 0;
}

DÉCHIFFRAGE

Code C : Sélectionner tout - Visualiser dans une fenêtre à part
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
#include <stdio.h>
#include <string.h>
 
int main(int argc, char** argv)
{
    char* MotACoder = argv[1];	
	int KeyRot13 = -13;
 
    // Toutes les lettres du Mot à Décoder
 
    for (int n = 0, len = strlen(MotACoder); n < len; n++)
    {
        int LettreActuelle = MotACoder[n];
 
        char LettreDechiffre = LettreActuelle - KeyRot13;
 
        // On vérifie que la lettre suivant ne dépassera pas 26
		// Ou n'est pas une lettre ASCII
		// Si c'est le cas, on applique %26 pour revenir dans le groupe de lettre
 
        if ((LettreActuelle - 'a') - KeyRot13 > 26)
        {
            KeyRot13 = (LettreActuelle - 'a') - KeyRot13) % 26;
            LettreDechiffre = 'a' + KeyRot13;
        }
 
		// On affiche le codage
        printf("%c", LettreDechiffre);
 
        // On remet KeyRot13 à -13
		// On passe à la lettre suivante
        KeyRot13 = -13;
        }
    }
    printf("\n");
    return 0;
}