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

Dev-C++ Discussion :

Question de d�butant en C++ avec Dev C/C++ et FLTK


Sujet :

Dev-C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Par d�faut Question de d�butant en C++ avec Dev C/C++ et FLTK
    Bonjour,

    je viens de me lancer dans la programmation C++ avec GUI et j'ai choisi pour cela de d�velopper avec Dev C/ C++ et FLTK.

    J'ai cependant une question qui me para�t basique mais apr�s deux jours de Google intensif, je ne trouve toujours pas la r�ponse.

    Sans plus tarder, voici mon code, lequel provient d'un tutoriel :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    #include <FL/Fl.H> 
    #include <FL/Fl_Window.H>
    #include <FL/Fl_Button.H>
    #include <FL/Fl_Int_Input.H>
    #include <FL/Fl_Output.H>
    #include <iostream>
    #include <string>
    using namespace std;
     
     
    class SimpleWindow : public Fl_Window{
     
       public:
          SimpleWindow(int w, int h, const char* title );
          ~SimpleWindow();
          Fl_Button* copy;
          Fl_Button* quit;
          Fl_Int_Input* inp;
          Fl_Output* out;
     
       private:
          static void cb_copy(Fl_Widget*, void*);
          inline void cb_copy_i();
     
          static void cb_quit(Fl_Widget*, void*);
          inline void cb_quit_i();
    };
     
     
    int main (){
     
       SimpleWindow win(300,200,"SimpleWindow");
       return Fl::run();
    }
     
     
     
    SimpleWindow::SimpleWindow(int w, int h, const char* title):Fl_Window(w,h,title){
     
       begin();
          copy = new Fl_Button( 10, 150, 70, 30, "C&opy");
          copy->callback( cb_copy, this );
     
          quit = new Fl_Button(100, 150, 70, 30, "&Quit");
          quit->callback(cb_quit, this);
     
          inp = new Fl_Int_Input(50, 50, 140, 30, "Input:");
          out = new Fl_Output(50, 100, 140, 30, "Output:");
       end();
       resizable(this);
       show();
    }
     
     
     
    SimpleWindow::~SimpleWindow(){}
     
     
     
    void SimpleWindow::cb_copy(Fl_Widget* o, void* v) { 
     
        ( (SimpleWindow*)v )->cb_copy_i();
    }
     
     
    void SimpleWindow::cb_copy_i() {
     
       out->value(inp->value());  
    }
     
     
    void SimpleWindow::cb_quit(Fl_Widget* , void* v) {
     
       ( (SimpleWindow*)v )->cb_quit_i();
    }
     
     
    void SimpleWindow::cb_quit_i() {
     
        hide();
    }
    Avec ce code, l'utilisateur rentre un nombre dans 'inp' et apr�s avoir cliqu� sur copy, le nombre s'affiche dans 'out'.

    Seulement, ce que je cherche � faire, et qui me para�t � priori plus utile pour la suite, c'est d'arriver � r�cup�rer la valeur de 'inp' pour faire des calculs sur cette derni�re et ensuite aficher le r�sultat sur 'out'. Comme pour faire par exemple quelquechose d'aussi simple qu'un convertisseur ou l'utilisateur rentre un montant et le programme fait un calcul du type res=montant * 6; et affiche le tout par 'out' par exemple.

    Et l�, j'ai essay� d'imaginer toutes les syntaxes possibles mais je s�che.

    D'ailleurs, si il existe une classe Fl_Int_input pour permettre de rentrer des integers, pourquoi le la classe Fl_Output n'acc�pte-t-elle que des const *char[] ?

    J'ai de plus en plus la sensation en tout cas de ne pas me poser les bonnes questions.

    Merci pour votre aide,
    JSK

  2. #2
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    J'ai mal compris, ou bien ton probl�me se r�sume juste � transformer une cha�ne en entier et vice-versa ? Si c'est le cas il y a la r�ponse partout, notamment dans la FAQ.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    13
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Par d�faut
    En fait, je d�sire simplement prendre le nombre que l'utilisateur rentre le input lors de l'ex�cution du programme, et lui ajouter 5 par exemple et l'afficher dans le output.

    Suite � ta r�ponse, j'ai essay� de convertir le nombre rentr� en un string, puis de string � integer. J'ajoute par exemple 5 � cet integer et je change le nouveau r�sultat en string, puis une fois en string, je le convertis en char.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    #include <FL/Fl.H> 
    #include <FL/Fl_Window.H>
    #include <FL/Fl_Button.H>
    #include <FL/Fl_Int_Input.H>
    #include <FL/Fl_Output.H>
    #include <iostream>
    #include <sstream>
    #include <string>
    #include <fstream>
     
     
    using namespace std;
     
     
    class SimpleWindow : public Fl_Window{
     
       public:
          SimpleWindow(int w, int h, const char* title );
          ~SimpleWindow();
          Fl_Button* copy;
          Fl_Button* quit;
          Fl_Int_Input* inp;
          Fl_Output* out; 
          string rs;
          string result;
          const char* updated_result;
     
     
          int nombre;  
          int new_nb;
     
     
       private:
          static void cb_copy(Fl_Widget*, void*);
          inline void cb_copy_i();
     
          static void cb_quit(Fl_Widget*, void*);
          inline void cb_quit_i();
    };
     
     
    int main (){
     
       SimpleWindow win(300,200,"SimpleWindow");
       return Fl::run();
    }
     
     
     
    SimpleWindow::SimpleWindow(int w, int h, const char* title):Fl_Window(w,h,title){
     
       begin();
          copy = new Fl_Button( 10, 150, 70, 30, "C&opy");
          copy->callback( cb_copy, this );
     
          quit = new Fl_Button(100, 150, 70, 30, "&Quit");
          quit->callback(cb_quit, this);
     
          inp = new Fl_Int_Input(50, 50, 140, 30, "Input:");
          out = new Fl_Output(50, 100, 140, 30, "Output:");
       end();
       resizable(this);
       show();
    }
     
     
     
    SimpleWindow::~SimpleWindow(){}
     
     
     
    void SimpleWindow::cb_copy(Fl_Widget* o, void* v) { 
     
        ( (SimpleWindow*)v )->cb_copy_i();
    }
     
     
    void SimpleWindow::cb_copy_i() {
     
        //converts our input value to a string
        rs=inp->value();
     
        //converts string to integer and add 5
        std::istringstream iss( "10" );
        iss >> nombre; 
        new_nb=nombre+5;
     
        //converts new integer back to string
        std::ostringstream oss;
        oss << new_nb;
        std::string result = oss.str();
     
        //converts our freshly converted string to char
        ifstream file( result.c_str() ); 
        out->value(updated_result);  
    }
     
     
    void SimpleWindow::cb_quit(Fl_Widget* , void* v) {
     
       ( (SimpleWindow*)v )->cb_quit_i();
    }
     
     
    void SimpleWindow::cb_quit_i() {
     
        hide();
    }

    Dans tous les cas le code compile, mais si je ne commente pas le out->value(updated_result); , le programme crash une fois que j'ai rentr� un nombre et cliqu� sur copy.

    JSK

Discussions similaires

  1. Question de d�butant dans mes premis pas avec FB
    Par jo.comeau dans le forum D�buter
    R�ponses: 1
    Dernier message: 13/08/2010, 09h14
  2. [D�butant] Probl�me avec Dev-Cpp 4.9.9.0
    Par P4Pi dans le forum Dev-C++
    R�ponses: 7
    Dernier message: 16/01/2010, 16h48
  3. [Question de d�butant] Probl�me avec un VBoxLayout
    Par manudwarf dans le forum Agents de placement/Fen�tres
    R�ponses: 1
    Dernier message: 14/05/2009, 13h45
  4. Projet avec EJB question de d�butant
    Par skyangel dans le forum Java EE
    R�ponses: 5
    Dernier message: 03/06/2008, 12h37
  5. [D�butant] API WINDOWS pb de linker avec DEV-C++
    Par coolmaxou dans le forum Windows
    R�ponses: 3
    Dernier message: 12/07/2005, 09h24

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