Bonjour
Je cherche a effectuer la lecture d'un fichier écrit en Unicode, ligne par ligne si possible.
Pour le moment, ça ne fonctionne pas.
Voici mon code
A chaque fois, cela m'affiche uniquement un caractere, le premier du fichier...
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 char lireFichier(char *nomFic){ FILE *fd = fopen(nomFic,"r,ccs=UNICODE"); wchar_t lig[64]; wchar_t *res; if (fd == NULL){ return -1; } res= fgetws(lig,60,fd); if (res == NULL){ wprintf(L"erreur\n"); } wprintf(L"%s",lig); fclose(fd); return 1; }
J'ai essayé autre chose de lire caractere par caractere le fichier (juste le début pour voir).
Cela donnait
La, ca fonctionne. Le seul probleme c'est que les caracteres accentues ne sont pas affiches dans ma console, a la place il y a des '?' . Comment remedier a ce problème?
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 char lireFichier(char *nomFic){ FILE *fd = fopen(nomFic,"r,ccs=UNICODE"); wint_t ok; int i; if (fd == NULL){ return -1; } for(i=0; i < 60;i++){ ok = fgetwc(fd); putwchar(ok); } fclose(fd); return 1; }
De plus, je me demande si tout ça est bien portable sur n'importe quelle machine (je suis sous Ubuntu).
Partager