Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
476 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  caractères illégaux ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

caractères illégaux ?

n°1023479
Kineas
Posté le 24-03-2005 à 14:54:15  profilanswer
 

Voilà je réalise un projet en c++ et dans ce projet j'ai besoin de lire des mots dans un fichier texte (des mots pouvant contenir des lettres avec des accents ou des lettres en majuscule)
J'ai utilisé la boucle suivante pour pouvoir lire les bon caractères mais j'ai une segmentation fault quand j'essaye de lire un mot qui commence par une lettre avec un accent (alors que ca marche tres bien quand la lettre qui a l'accent n'est pas en debut de mot : "âne" -> marche pas alors que "mâne" ->marche !)
Voila le bout de code correspondant :

Code :
  1. while(ch>='a' && ch<='z' || ch>='A' && ch<='Z' || ch=='é' || ch=='è' || ch=='ê' || ch=='ë' || ch=='à' || ch=='â' || ch=='î' || ch=='ï' || ch=='ù')
  2.     {
  3.        if(ch>='A' && ch<='Z')
  4.             ch=tolower(ch);
  5.         motLu[j++]=ch;
  6.         fread(&ch, 1, 1, file);
  7.     }
  8.     motLu[j]='\0';


Est-ce que quelqu'un a une idée ?  :bounce:  
 
edit : j'ai oublie de preciser que je travaillais sous dev c++ avec wxwidgets voila !


Message édité par Kineas le 24-03-2005 à 14:55:46
mood
Publicité
Posté le 24-03-2005 à 14:54:15  profilanswer
 

n°1023480
Taz
bisounours-codeur
Posté le 24-03-2005 à 14:57:01  profilanswer
 

c'est du C ça.
 
regarde ce qu'il y a dans <cctype>
 
 
fread(&ch, 1, 1, file);
 
une façon compliqué de faire un fgetc. tu fais comment pour détecter la fin de fichier ?

n°1023494
Kineas
Posté le 24-03-2005 à 15:01:57  profilanswer
 

ben je fais un !feof(file) mais c'est vrai que j'ai l'impression que ca marche pas !!  
Il vaut mieux que j'utilise les fgetc ?  
Et ca me reglera mon probleme d'accents ?


Message édité par Kineas le 24-03-2005 à 15:02:24
n°1023504
Taz
bisounours-codeur
Posté le 24-03-2005 à 15:05:23  profilanswer
 

qui est aussi du C ! et du mauvais !  
 
 
utilise std::istream, <cctype> et std::string !

n°1023525
Kineas
Posté le 24-03-2005 à 15:23:44  profilanswer
 

En fait il fodrait que je ne passe plus par des char* mais par des string et que je remplace tous mes fprintf par fgetc c'est ca?
Mais quele est la difference entre fgetc et fprintf ?
Et le fait de passer par des string ca me regler mon problemen d'accents ? (je pensais plutot que ca evnait de windows qui n'arrivait pas a faire des traitements corrects sur les accents !)

n°1023526
++fab
victime du syndrome IH
Posté le 24-03-2005 à 15:24:12  profilanswer
 

et apres, il se mange le probleme du std::tolower  :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  caractères illégaux ?

 

Sujets relatifs
PHP : vérifier si des caractères sont alphanumériques[java]Pb de caracteres
taritement chaîne de caractères sous accessChaîne de caractères - Obtenir la longueur en points
Caractères speciauxUn regex qui tient compte des caractères d'échappement
pb avec une chaine de caractères [RESOLU]Selection de caracteres de facon aleatoire
Afficher des caractères spéciaux sous Internet Explorer[c] Comment saisir une chaine de caractères
Plus de sujets relatifs à : caractères illégaux ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR