scorpyon1903
Messages postés12Date d'inscriptionmercredi 26 mai 2004StatutMembreDernière intervention 3 mai 2005
-
15 avril 2005 à 11:49
scorpyon1903
Messages postés12Date d'inscriptionmercredi 26 mai 2004StatutMembreDernière intervention 3 mai 2005
-
19 avril 2005 à 16:10
Bonjour,
Je développe un petit programme en C (pour la console).
1°) Actuellement, je prends l'entrée standard (mon clavier) et je stocke ce qui est saisi dans un fichier texte. Or lorsque j'édite celui-ci, tous les caractère accentués sont remplacés par des virgules. J'ai changé les propriétés de mon projet en utilisant les caractères Unicode (j'utilise VC++2003) et maintenant les caractères comme le "é" sont remplacés par un petit carré.
Est-ce que quelqu'un peut m'aider pour résoudre ce problème ?
2°) D'autre part, j'aimerais que la date et l'heure que j'écris dans mon fichier log soient en français, malheureusement, j'ai beau faire des setlocale à toutes les sauces, tout reste en anglais.
Quelqu'un a la solution ?
Merci à tous par avance.
Le sot ne sait pas ce qu'il dit mais le sage ne dit pas ce qu'il sait...
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 avril 2005 à 12:22
Pour le premier problème je crois que ca n'a rien a voir avec unicode
(les caractères accentués font partie de la table ASCII étendue). Tu
peux utiliser la fonction CharToOem pour régler ces problèmes ou bien
écrire directement avec les codes OEM mais ce sera illisible dans le
source.
scorpyon1903
Messages postés12Date d'inscriptionmercredi 26 mai 2004StatutMembreDernière intervention 3 mai 2005 18 avril 2005 à 10:33
Bonjour,
J'ai essayé d'utiliser la fonction CharToOem mais j'ai des erreurs à la ompilation (error C2664: 'CharToOemW' : impossible de convertir le paramètre 1 de 'char [100]' en 'LPCWSTR').
Voici mon code pour lire sur stdin, pouvez-vous me dire comment utiliser CharToOem car je ne m'en sort pas avec l'aide MSDN?
postTab est défini comme suit dans mon programme :
char postTab[longCh];
void recup()
{
int ch;
for(i=0; i<longCh && ((ch=getwchar())!=EOF) && (ch!='\n'); i++)
postTab[i]=(
char)ch;
postTab[i]='\0';
// on termine la chaine avec le caractère de fin de chaîne.
CharToOem(postTab, postTab); // pour convertir ma chaine en OEM.
}
scorpyon1903
Messages postés12Date d'inscriptionmercredi 26 mai 2004StatutMembreDernière intervention 3 mai 2005 19 avril 2005 à 16:10
Salut !
J'ai testé CharToOemA, je n'ai plus d'erreur à la compilation mais le résultat obtenu n'set pas celui attendu (ie un 'é' apparait comme ',' au lieu d'un carré comme c'était le cas auparavant). Je désespère :'-(.