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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void clean_stdin (void);
char ascii(char ) ;
static void purger(void) //je sais pas si cette fonction est nécessaire ....
{
int c;
while ((c = getchar()) != '\n' && c != EOF)
{}
}
static void clean (char *chaine) //on cherche le caractère \n et on le supprime
{
char *p = strchr(chaine, '\n');
if (p)
{
*p = 0;
}
else
{
purger();
}
}
int main (void)
{
FILE * fichier2 = NULL;
FILE * fichier = NULL;
char lettre = 0 ;
char caractereActuel,remplaceur,remplacant = 0 ;
int reponse ;
//printf("Entrez le fichier à modifier : /n ex : "/home/razor/Desktop/lol1.txt") ;
char chaine[31], chaine2[20];
printf("Tapez une phrase : \n");
fgets(chaine, sizeof chaine, stdin);
clean(chaine);
printf("Vous avez tape : '%s'", chaine);
printf("\n Entrez le caractère que vous souhaitez remplacer : ");
scanf("%c", &remplacant) ; // on récupére la lettre qu'il veut remplacer
clean_stdin (); // on vide le buffer
printf("Entrez par quel autre caractère vous voulez le remplacer :") ;
scanf("%c", &remplaceur) ; // on récupére la lettre qu'il veut remplacer
clean_stdin (); // on vide le buffer
printf(" Valider?\n");
printf("oui(1) ou non(2) : ");
scanf("%d", &reponse);
if(reponse == 1)
{
fichier = fopen(chaine, "r"); // on ouvre le fichier avec comme droit"r" (write)
fichier2 = fopen("/home/razor/Desktop/lol2.txt", "w");
if (fichier != NULL) // on regarde si le fichier existe
{
caractereActuel = fgetc(fichier);
do
{
if(remplacant == caractereActuel)
{
printf("%c" ,remplaceur);
printf("ok");
fputc(remplaceur, fichier2);
}
else
{
fputc(caractereActuel, fichier2);
}
printf("%c \n " ,caractereActuel);
caractereActuel = fgetc(fichier); //on passe au caractère suivant
//printf("%c la fonctionestpasser " ,ascii(caractereActuel));
} while (caractereActuel != EOF) ;
fclose(fichier2); //on ferme les deux fichiers(fichier1 et 2 )
fclose(fichier);
printf(" Fichier modifié avec succès \n -------------------------------------------------------------------------- \n ");
}
}
else // si l'utilisateur à appuyé sur la touche 2 alors
{
return 0 ;
}
}
void clean_stdin(void) // fonction qui efface le buffer lors d'une saisie de l'utilisateur
{
int c;
do {
c = getchar();
} while (c != '\n' && c != EOF);
} |
Partager