Re bonjour à tous,
Grâce à vous mon projet avance à toute vitesse. Je me heurte cependant à un dernier souci:
j'ai un fichier texte en mode binaire qui contient entre autre des caractères accentués. Je dois placer le caractère hexa 0x83 devant chaque caractère accentué

Fonctionnement souhaité: on ouvre le fichier source et on compare chaque caractère à la valeur 0xC0. S'il est supérieur (4 dernières lignes de la table ascii étendue), il s'agit d'un caractère accentué on ajoute au fichier cible le caractère 0x83 puis on poursuit la copie fichier à fichier.

Code : 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
char precedent=0x00;
 
	do
    { 
 
        char caractere_lu = fgetc(fichierorigine); //lecture dans le fichier source d'un caractère
 
        // Checking for end of file 
        if (feof(fichierorigine)) //sortie de boucle si fin de fichier atteinte
            break ; 
 
 
		  // on cherche si le caractère lu est accentué (si son code hexa est sur les 4 dernières lignes de la table ascii étendue)
		  // il faut aussi prévoir le fait qu'on doit pouvoir exécuter plusieurs fois la moulinette sans rajouter à chaque fois le caractèe 0x83 s'il est déjà présent
 
			if (caractere_lu>0xC0 && precedent!=0x83)	//
			{
				fputc(0x83, fichierdestination);   //ecriture dans le fichier cible d'un caractère
     		}
 
  		 fputc(caractere_lu, fichierdestination);
  		 precedent=caractere_lu;
 
    }  while(1);
Merci d'avance pour votre aide. Promis c'est la dernière fois que je vous embête.