Bonjour,

J'ai déjà fait de la programmation C mais je ne me suis jamais retrouvé devant la problématique des caractères accentués. J'ai trouvé un code permettant de faire un Dir du répertoire courant. Je compile avec Code::Blocks. Après quelques recherches j'ai appliqué l'instruction -std=c99 dans les options de compilation. Ce qui sort sur la console est correct mais ce qui est écrit dans le fichier ne l'est pas.

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
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <stdlib.h>
 
int main()
{
    struct dirent *lecture;
    DIR *rep;
    rep = opendir("." );
    while ((lecture = readdir(rep))) {
        printf("%s\n", lecture->d_name);
    }
    closedir(rep);
    system("Dir *.cbp > Liste.txt");
 
}
Voici le contenu de Liste.txt:
Le volume dans le lecteur C n'a pas de nom.
Le num‚ro de s‚rie du volume est EA59-C75F

R‚pertoire de C:\Users\xxxx\Documents\CB_2021\Cr‚ationListeTXT

19/04/2021 19:36 1ÿ086 Cr‚ationListeTXT.cbp
1 fichier(s) 1ÿ086 octets
0 R‚p(s) 802ÿ861ÿ092ÿ864 octets libres
Avec l'instruction system("Dir *.cbp) voici le résultat dans la console, le Dir est propre mais pas ce qui précède.
.
..
bin
CrÚationListeTXT.cbp
CrÚationListeTXT.depend
CrÚationListeTXT.layout
Liste.txt
main.c
obj
Le volume dans le lecteur C n’a pas de nom.
Le numéro de série du volume est EA59-C75F

Répertoire de C:\Users\xxxx\Documents\CB_2021\CréationListeTXT

19/04/2021 19:36 1*086 CréationListeTXT.cbp
1 fichier(s) 1*086 octets
0 Rép(s) 802*860*306*432 octets libres

Process returned 0 (0x0) execution time : 0.039 s
Press any key to continue.
Comment avoir le Dir correctement écrit dans le fichier ?

Merci pour votre aide

Olivier