Problème de lecture des caractères bizarres
Bonjour,
j'ai un petit problème pour lire un fichier.
J'ai un fichier qui contient une signature faite avec RSA.
Je fais :
FILE *f1 = open("mon_fichier","r");
snprintf(value,128,fgets(ligne,128,f1));
fclose(f1);
Ca marche très bien avec des fichiers textes normaux mais là comme le fichier contient un message crypté, les caractères sont tous plus bizarres les uns que les autres et des fois tout n'est pas copié (dans value).
Comment faire ?
j'ai un petit problème pour lire un fichier.
J'ai un fichier qui contient une signature faite avec RSA.
Je fais :
FILE *f1 = open("mon_fichier","r");
snprintf(value,128,fgets(ligne,128,f1));
fclose(f1);
Ca marche très bien avec des fichiers textes normaux mais là comme le fichier contient un message crypté, les caractères sont tous plus bizarres les uns que les autres et des fois tout n'est pas copié (dans value).
Comment faire ?
A voir également:
- Problème de lecture des caractères bizarres
- Caractères spéciaux - Guide
- Accusé de lecture gmail - Guide
- Confirmation de lecture whatsapp - Guide
- Caracteres speciaux - Guide
- Lecture epub sur pc - Guide
5 réponses
Si ta ligne courante fait plus de 128 caarctères c'est clair que ça ne va pas marcher.
Pourquoi ton fgets n'écrit pas directement dans value ?
Au final pourquoi ne pas lire caractère par caractère ?
Que fais tu par la suite dans ton programme avec value ?
Bonne chance
Pourquoi ton fgets n'écrit pas directement dans value ?
Au final pourquoi ne pas lire caractère par caractère ?
Que fais tu par la suite dans ton programme avec value ?
Bonne chance
Oui effectivement je pourrais écrire directement dans value (je voulais d'abord modifier ligne mais ça a évolué ...).
La ligne ne fait que 128 caractères (la sortie de la signature est comme ça). Mais là des fois les 128 caractères sont copiés des fois non (un nombre variable, j'ai eu 47, 56, 22 ...). Je pense que le problème est que les caractères ne sont pas des lettres clasiques mais des caractères spéciaux. Il peut même y avoir des tabulations, des sauts de ligne (j'ai modofié un peu pour que le programme lise sur plusieurs lignes et concatène) mais j'ai peur qu'il puisse aussi y avoir le caractère fin de chaîne ... Peut-être ce qui coupe la chaîne.
Dans la suite value est envoyé, puis décrypté un peu plus tard.
La ligne ne fait que 128 caractères (la sortie de la signature est comme ça). Mais là des fois les 128 caractères sont copiés des fois non (un nombre variable, j'ai eu 47, 56, 22 ...). Je pense que le problème est que les caractères ne sont pas des lettres clasiques mais des caractères spéciaux. Il peut même y avoir des tabulations, des sauts de ligne (j'ai modofié un peu pour que le programme lise sur plusieurs lignes et concatène) mais j'ai peur qu'il puisse aussi y avoir le caractère fin de chaîne ... Peut-être ce qui coupe la chaîne.
Dans la suite value est envoyé, puis décrypté un peu plus tard.
Peux tu donner un exemple de fichier ?
Le problème c'est que si dans le fichier que tu lis tu as le malheur de croiser un caractère de fin de ligne ça ne marche plus.
Que donne la lecture caractère par caractère (il faut lire tant que ce n'est pas le caractère EOF) ou avec un fread ?
Bonne chance
Le problème c'est que si dans le fichier que tu lis tu as le malheur de croiser un caractère de fin de ligne ça ne marche plus.
Que donne la lecture caractère par caractère (il faut lire tant que ce n'est pas le caractère EOF) ou avec un fread ?
Bonne chance
Le fichier ressemble à ça :
%D<90><9d>^_ô°£ ...
Ajoutez à ça des "y" avec un accent ou des "o" barrés ...
J'ai essayé caractère par caractère et avec fread, même résultat.
En tout cas, merci de proposer des pistes c'est sympa.
%D<90><9d>^_ô°£ ...
Ajoutez à ça des "y" avec un accent ou des "o" barrés ...
J'ai essayé caractère par caractère et avec fread, même résultat.
En tout cas, merci de proposer des pistes c'est sympa.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question