Bonjour,

En utilisant les fonction d'entrées/sorties de la bibliothèque CLIB, je me rend compte que l'on peut saisir des caractères accentués et qu'ils peuvent par la suite s'afficher correctement sur une console Windows.

Ainsi le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#include "ed/inc/io.h"
 
int main(int argc, char *argv[])
{
   char chaine[32] = {0};
   get_s(chaine, sizeof chaine);
   printf("%s", chaine);
   return 0;
}
Produit bien ceci en console :

André a été à l'île de Ré.<enter>
André a été à l'île de Ré.
Mais lorsque je tente d'écrire cette même chaîne dans un fichier, ce n'est pas la même chose.

Ainsi le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#include "ed/inc/io.h"
 
int main(int argc, char *argv[])
{
   char chaine[32] = {0};
   get_s(chaine, sizeof chaine);
 
   FILE* fichier = fopen("test.txt", "a");
   fputs(chaine, fichier);
 
   return 0;
}
Ecrit ceci dans le fichier test.txt, si je saisis la même chaîne :
Andr‚ a ‚t‚ … l'Œle de R‚.
Comment peut-on correctement (sous Windows pour le moment) écrire correctement des caractères accentués dans un fichier ?
La réponse est peut-être simple, mais je n'arrive pas à la trouver par moi même en recherchant dans les sujets déjà traités.

Merci.