IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Un programme qui écrit en chinois


Sujet :

C++

  1. #1
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut Un programme qui écrit en chinois
    bonjour a tous
    peut on me dire pourquoi ce programma la:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    double partie_reelle(double x,double y){
    	return x*x-y*y;
    }
    double partie_imag(double x,double y){
    	return 4*y*x;
    }
    int main()
    {
     
      ofstream outfile ("nasdaq.txt",ofstream::binary);
      char  buffer1[9] ;
      char  buffer2[9] ;
      long size;
     
      for(double k=0;k<=30;k++){
    	  double ima=k/30;
    	  for(double i=0;i<=1000;i++){
    		  double re=-2+i/500;
    		  double x1=partie_reelle(re,ima);
    		  double x2=partie_imag(re,ima);
              sprintf(buffer1,"%f",x1);
              sprintf(buffer2,"%f",x2);
     
    		  outfile.write (buffer1,9);
               outfile.write (",",2);
    		  outfile.write (buffer2,9);
    		  outfile.write (",",1);
    	  }
     outfile.close();
      }
    quand je le lance, ca m'écrit du chinois (mandarin ou cantonaisje ne sais pas):

    ⴀ⸰㤱㘸㜶⸲ㄲ〳㌳ⴀ⸰㤱㐸〰⸲〲〷㔸ⴀ⸰㤱ㄸ㌳⸲〲ㄱ㜰ㄲ㔸ⴀ⸰㌱ㄸ㌳⸱㘰〸㔴ⴀ⸰㌱㠷㜶⸱㘰㤳㌱ⴀ⸰㌱㘷〰⸱㔰㜹㤸ⴀ⸰㌱㌷㌳⸱㔰㘵㌷ⴀ⸰㌱〷㜶⸱㔰㔱㔶ⴀ⸰㌱㠶〰⸱㐰㐷㔶ⴀ⸰㌱

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Je ne sais pas ce qu'il y a d'écrit en mandarin ou cantonnais, mais ton sprintf(buffer1,"%f",x2); déborde dès la première boucle (x2=-0 -> écrit en 10 octets)!
    Plutôt que d'utiliser sprintf et un buffer utilise la STL.

  3. #3
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut
    merci, en fait ce que je voudrais faire, c'est écrire dan un fichier cette chaine de caractère:

    [re,x1,x2]

    qui représente 3 coordonnées:

    plus précisément, voila ce que je voudrais avoir dans mon fichier:

    [0.3434,33,35]
    [0.5435,456,334]
    [3,233,252]

    et ainsi de suite

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Eh bien déjà, commence par utiliser les fonctions texte plutôt que les fonctions binaires...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Il faut parfois ne pas chercher trop loin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		  double re=-2+i/500;
    		  double x1=partie_reelle(re,ima);
    		  double x2=partie_imag(re,ima);
            outfile<<re<<","<<x1<<","<<x2<<"\n";

  6. #6
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut
    tu veux dire qu'il faut que j'enlève le binary dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ofstream outfile ("nasdaq.txt",ofstream::binary);
    ??

    C'est ce que j'ai fait
    en fait mon programme marche, mais il me manque une seule chose:
    c'est que les crochets sont écrits en ligne, alors qu'il me les faut en colonne.
    Je veux faire par exemple:
    pour retourner à la ligne, en utilisant write

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pourquoi utiliser write() quand tu peux utiliser endl ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par deubelte Voir le message
    tu veux dire qu'il faut que j'enlève le binary dans
    ofstream outfile ("nasdaq.txt",ofstream::binary);
    ??

    C'est ce que j'ai fait
    en fait mon programme marche, mais il me manque une seule chose:
    c'est que les crochets sont écrits en ligne, alors qu'il me les faut en colonne.
    Je veux faire par exemple:
    fprintf(file,"\n");
    pour retourner à la ligne, en utilisant write
    Pourquoi utiliser fprintf et consort alors que tu utilise un ofstream. Regarde et . Ou fouille dans les tutos et les faq du site.

  9. #9
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par deubelte Voir le message
    tu veux dire qu'il faut que j'enlève le binary dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ofstream outfile ("nasdaq.txt",ofstream::binary);
    ??
    Faire du binaire signifie deux choses : Déjà le mode d'ouverture du fichier, qui ne joue à peu près que sur les fins de lignes, ensuite, et bien plus impactant, le fait d'utiliser les fonctions d'affichage formaté (operator<<) ou les fonctions d'affichage non formatés (write et compagnie).
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Programme qui écrit dans un fichier
    Par unix27 dans le forum OTIC (ex-Genio)
    Réponses: 3
    Dernier message: 14/10/2013, 10h57
  2. Réponses: 12
    Dernier message: 03/12/2010, 16h08
  3. Mettre sur sharepoint un programme qui a été écrit en Java
    Par lasvegas_parano dans le forum SharePoint
    Réponses: 3
    Dernier message: 11/06/2007, 14h39
  4. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo