Partage
  • Partager sur Facebook
  • Partager sur Twitter

cast char int??

    26 mai 2006 à 17:04:35

    Salut à tous, je lis dans un fichier un nombre, or ce nombre est stocker dans un char, je voudrais mainteant faire un cast pour récupérer les int, ou le doucle.
    Comment puis-je faire?
    En faisant ça, ça ne marche pas:
    char tmp[20]
    int tmp;
    //lecture du fichier on récupere la premiere ligne dans tmp

    chiffre=(int)tmp;
    • Partager sur Facebook
    • Partager sur Twitter
      26 mai 2006 à 17:08:17

      Tu as mis C++, donc je pars du principe que tu fais du C++ soit :

      string ligne;
      getline(ton_flux_fichier_de_type_ifstream, ligne);
      istringstream extractor(ligne);
      int mon_int;
      extractor >> mon_int;


      Note : tu peux aussi faire "ton_flux >> mon_int;" mais dans certains cas une lecture ligne par ligne est privilégiable et c'est _peut etre_ le cas ici.
      • Partager sur Facebook
      • Partager sur Twitter
        26 mai 2006 à 17:35:46

        Merci beaucoup pour ta rapidité, mais je comprend pas, il bug si je met un string:
        `string' undeclared (first use this function)
        pourtant voici mes include:

        #include <cstdlib>
        #include <iostream.h>
        #include <iostream>
        #include <stdio.h>
        #include <conio.h>
        #include <string.h>
        #include <time.h>

        • Partager sur Facebook
        • Partager sur Twitter
          26 mai 2006 à 17:53:53

          Si tu fais du C++, rajoute using namespace std; après tes includes pour utiliser la STL (équivalent du stdc mais en C++)
          • Partager sur Facebook
          • Partager sur Twitter
            26 mai 2006 à 17:57:20

            Je veux pas jouer mon rabajoie mais au vus des inculde o_O


            Des biblioteque C standart , avec des biblio C++ standart, avec conio.h qui traine dedans ...


            Pour quoi utiliser un tableau de char en C++ alors que tu a le type string fais pour ça ?
            • Partager sur Facebook
            • Partager sur Twitter
              26 mai 2006 à 17:57:24

              et puis c'est <string> et pas <string.h>
              • Partager sur Facebook
              • Partager sur Twitter
                26 mai 2006 à 17:58:23

                Dans mon code les includes sont
                sstream
                fstream
                string

                tout ça bien sur dans le namespace std;

                vire moi ce string.h et ce iostream.h que je ne saurais voir, time.h > ctime , stdio.h ? si _vraiment_ besoin > cstdio
                • Partager sur Facebook
                • Partager sur Twitter
                  27 mai 2006 à 10:10:58

                  Merci beaucoup de corriger toutes mes petites erreurs tres bete!!!
                  il y avais bien un problème avec le .h qui n'avait lieu d'être la...
                  par contre je fais comment l'ouverture du fichier avec tout ça?
                  avant je faisais
                  FILE* fichier = NULL;
                  fichier = fopen("taux.txt", "r+");

                  mais maintenant tu me dis que le type est
                  ifstream* fichier = NULL;

                  je sais pas si je dis n'importe quoi ou pas mais toutes les fonctions que tu m'as donné sont des fonctions spécifiques au c++?je crois que je suis un boulet qui code en c avec des classes en fait!!!

                  bref Merci de vore aide!!


                  j'ai trouvéééééééééé!!!
                  #include <string>
                  #include <fstream>
                  #include <iostream>

                  int main()
                  {
                      // le constructeur de ifstream permet d'ouvrir un fichier en lecture
                      std::ifstream fichier( "fichier.txt" );

                      if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
                      {
                          std::string ligne; // variable contenant chaque ligne lue

                          // cette boucle s'arrête dès qu'une erreur de lecture survient
                          while ( std::getline( fichier, ligne ) )
                          {
                              // afficher la ligne à l'écran
                              std::cout << ligne << std::endl;
                          }
                      }
                  }


                  par contre

                  istringstream extractor(ligne);
                              int mon_int;
                              extractor >> mon_int;
                              cout<< mon_int;

                  cça ne envoit que le chiffre avant la virgule:
                  Exemple il y a 1.2 ça me donne un int à 1!!
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 mai 2006 à 12:20:57

                    Normal c'est un int... prend un double ou float alors...
                    • Partager sur Facebook
                    • Partager sur Twitter

                    cast char int??

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown