begin process at 2012 05 30 14:08:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

un programme bizarre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

un programme bizarre

vendredi 25 juin 2010 à 14:01:25 | un programme bizarre

mervat

bonjour,
ce programme permet d'éliminer quelques caractères d'un fichier texte et metle résultat dans un autre fichier texte; il est exécutable mais il ya certains caractères qui n'ont pas été éliminés, je ne sais pas pourquoi, c'est vraiment bizarre:
Code C/C++ :
#include <string.h>
#include <stdio.h>
#include <ctype.h>
int main(void)
{
  FILE *stream, *stream1;
  int ch ;

  stream = fopen("in.txt", "r+");
  stream1 = fopen("out.txt", "w+");

  do
  {
	ch = fgetc(stream);
	if (ch == EOF)
	  break;

	if (ch != '.' && ch != ':' && ch != '"' && ch != '/' && ch != ')' && ch != '(' && ch != '«' && ch != '»' && ch != ','&& ch != '}' && ch != '{' && ch != '-')

	  fprintf(stream1, "%c", ch);
  } while (ch != EOF);

  fclose(stream);
  fclose(stream1);

  return 0;
  }

le fichier in:
Code :
- This is a "test"...  

«yes, it is»      


et le fichier out (résultat) serait:
Code :
- This is a test  

«yes it is»     

donc les caractères - « » n'ont pas été éliminé
vous pouvez déja l'essayer;
svp aidez moi à savoir la raison.
et merci beaucoup.
vendredi 25 juin 2010 à 14:41:27 | Re : un programme bizarre

CptPingu

Administrateur CodeS-SourceS
"»" est un caractère étendu. C'est à dire qu'il ne tient pas sur un mais deux "char" !
Tu ne peux donc pas le comparer avec char. Il te faut utiliser un char en UTF-8 (caractère étendue, wide char en anglais).
Tu peux le trouver via wchar_t, qui est inclus dans wchar.h.
Voir toutes les fonctions associées: http://opengroup.org/onlinepubs/007908799/xsh/wchar.h.html

Ou plus simplement, tu élimines tous les caractères qui ne sont pas dans la table ASCII, en retirant tous ce qui n'est pas imprimable (à part les espaces):

Code C/C++ :
#include <string.h>
#include <stdio.h>
#include <ctype.h>

int main(void)
{
  FILE *stream, *stream1;
  int ch;

  stream = fopen("in.txt", "r");
  stream1 = fopen("out.txt", "w");

  do
  {
    ch = fgetc(stream);
    if (ch == EOF)
      break;

    if ((isprint(ch) || isspace(ch)) && ch != '-' &&
	ch != '.' && ch != ':' && ch != '"' &&

	ch != '/' && ch != ')' && ch != '(' &&
	ch != ',' && ch != '}' && ch != '{')
    {
      fprintf(stream1, "%c", ch);
    }
  } while (ch != EOF);

  fclose(stream);
  fclose(stream1);

  return 0;
}


_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
vendredi 25 juin 2010 à 15:05:12 | Re : un programme bizarre

mervat



c'est une bonne solution pour les textes français ou anglais peut être, mais j'ai des textes en arabe, donc si j'exécute ce programme, il ne m'affiche pratiquement rien.
vendredi 25 juin 2010 à 15:11:40 | Re : un programme bizarre

CptPingu

Administrateur CodeS-SourceS
Alors tu dois te tourner vers la première solution, les wchar. Regarde les liens donnés.

_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
vendredi 25 juin 2010 à 15:17:41 | Re : un programme bizarre

mervat




oui effectivement je vais voir ça, merci
samedi 26 juin 2010 à 18:09:36 | Re : un programme bizarre

Chouchou182

Salut,

Si ton but est d&#8217;écrire un programme en C, suis les conseils de CptPingu et ne tiens pas compte de la suite.

Si ton but est de nettoyer tes fichiers, penche-toi vers sed ou similaire:

sed -e 's/[«».:\/(),{}-]//g' <in >out

Bonne prog,
--
Chouchou.


Cette discussion est classée dans : fichier, code, stream, is, stream1


Répondre à ce message

Sujets en rapport avec ce message

Extraire url d'un fichier [ par oeil123 ] J'ai fait ce peit bout de code mais malheureusement il y a plusieurs ligne dans le fichier. Donc je n'ai que la premiere url et j'aimerai éviter une b éliminer les points et les virgules d'un fichier texte [ par mervat ] ce programme permet d'éliminer tous les points et les virgules d'un fichier texte et met le résultat dans un autre fichier texte, il est bien exécutab éliminer les caractères de ponctuation d'un texte [ par mervat ] bonjour, ce programme permet d'éliminer la ponctuation du texte, sauf si les caractères de ponctuation sont compris entre 2 chiffres, ils sont alors g fopen ne marche pas! [ par tekthomasdu96 ] Bonjour, Lorsque je fait [code=cpp]fichier=fopen("SchoolMoyenne\\materiel.inf","w");[/code] fichier=NULLL. [^^sad1] Le repertoire SchoolMoyenne ex Fichier ressource .rc et fonts [ par bunob ] Bonjour, J'essaie d'appliquer une police particulière sur un contrôle : [code=cpp] #include #include "resource.h" #include "winres.h" .... FONT 18, Lire, écrire, fichier texte en c [ par phoenixgreg ] Bonjour à tous, Voilà je j'arrive à insérer mes données dans mon fichier texte, donc le nom + le score, mais en le lisant il ne me met pas le nom sau numéroter les phrases d'un fichier texte et les réécrire dans un autre fichier [ par mervat ] bonjour, les instructions ci dessous me permettent en principe de copier un fichier texte dans un autre fichier en numérotant ses phrases, [code=cpp] Probleme Fichier C++ [ par florianlens ] Bonjour, je dois modifier un code sous C++ Builder et j'ai un problème au niveau des fichiers [code=cpp]bool TUser::readFromFile(std::ifstream &iff) Programme en c++ [ par noussa44 ] Bonjour à tous, Je suis débutant en c++ et j'ai un problème dans un exercice qui demande de lire à partir d'un fichier texte des réels et les stockés


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales