Lire et écrire dans des fichiers

Fermé
alpha - 5 mai 2014 à 18:00
 alpha - 6 mai 2014 à 09:23
Bonjour,

J'ai fait l'algorithme suivant qui consiste à chiffrer un message contenu dans test.txt (le message est "Coucou !" et le fichier contient bien 8 caractère), mais il lit indéfiniment et ne tient pas compte de ma ligne de code lorsque je lui lance le signal EOF :


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
FILE *fichier = NULL;
int caractereActuel = 0, i = 0;
char caractereLettre = 0;

fichier = fopen("test.txt", "r+");

if(fichier != NULL)
{
/* Chiffrer le message */
do
{
caractereActuel = fgetc(fichier); /* On lit le caractère */
printf("ASCII : %d, char : %c\n", caractereActuel, caractereActuel);
caractereActuel += 10; /* Chiffrement */
fseek(fichier, -1, SEEK_CUR); /* On remplace le caractère actuel par le caracttère chiffrer */
fputc(caractereActuel, fichier); /* On remplace le caractère actuel par la caractère a */
printf("ASCII : %d, char : %c\n", caractereActuel, caractereActuel);
printf("\n");
} while(caractereActuel != EOF); /* On continue tant que fgetc n'a pas retourné EOF (fin de fichier) */

rewind(fichier); /* On se positionne au début du fichier */

/* Déchiffrer le message */
do
{
caractereActuel = fgetc(fichier); /* On lit le caractère */
printf("ASCII : %d, char : %c\n", caractereActuel, caractereActuel);
caractereActuel -= 10; /* Chiffrement */
fseek(fichier, -1, SEEK_CUR); /* On remplace le carcatère chiffrer par le caractère déchiffrer */
fputc(caractereActuel, fichier); /* On remplace le caractère actuel par la caractère a */
printf("ASCII : %d, char : %c\n", caractereActuel, caractereActuel);
printf("\n");
} while(caractereActuel != EOF); /* On continue tant que fgetc n'a pas retourné EOF (fin de fichier) */

fclose(fichier);
}
else
{
printf("Impossible d'ouvrir test.txt\n");
}

return EXIT_SUCCESS;
}
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 5/05/2014 à 21:32
Je constate que ma réponse dans l'autre post t'a servi.
Un petit message pour dire que la réponse te convient et éventuellement de remerciement serait bienvenus. Ça nous permettra de clore l'ancien post et nous encouragera :-)))


Google is your friend
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
5 mai 2014 à 23:06
Bonjour,

Ah, j'ai vu le message. Du coup, ça me donne envie de répondre ;-).
Alors, je te conseille déjà d'utiliser des fonctions (une pour chiffrer, une pour déchiffrer).
Ensuite, ça pose problème de lire et récrire dans le même fichier de cette façon. Le mieux est d'ouvrir le fichier courant en lecture, créer un temporaire qui contiendra le résultat en écriture. Et ensuite, si tu le souhaites, tu peux supprimer le fichier courant et renommer l'autre.

Cdlt,
0
Daccord, merci !
0