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

SDL Discussion :

scanf avec SDL/C ?


Sujet :

SDL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2012
    Messages : 32
    Points : 12
    Points
    12
    Par défaut scanf avec SDL/C ?
    Salut ! ,

    est-ce qu il y a un moyen d'avoir genre un éditeur de texte en sdl

    - > faire un scanf d'une chaine de caractères,
    comment ?

    et est ce que c'est possible d'afficher l’édition du texte en direct !! avec sdl_TTF ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Ouais rien de empêche c'est quoi le souci ?
    Grosso modo , tu récupères les éventements tapé.
    Tu les met dans un tableau de char , tu l'affiche avec SDL_TTF.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2012
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    Ouais rien de empêche c'est quoi le souci ?
    Grosso modo , tu récupères les éventements tapé.
    Tu les met dans un tableau de char , tu l'affiche avec SDL_TTF.
    merci pour ta réponse

    j'ai essayé ça et ça marche pas
    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
     
    void nameinput(void)
    {
     
        char *str= "";
        SDL_EnableUNICODE( SDL_ENABLE );
        if( event.type == SDL_KEYDOWN )
        {
            if( strlen(str) <= 16 )
            {
                if( event.key.keysym.unicode == (Uint16)' ' )
                {
                    str += (char)event.key.keysym.unicode;
                }
                else if( ( event.key.keysym.unicode >= (Uint16)'0' ) && ( event.key.keysym.unicode <= (Uint16)'9' ) )
                {
                    str += (char)event.key.keysym.unicode;
                }
                else if( ( event.key.keysym.unicode >= (Uint16)'A' ) && ( event.key.keysym.unicode <= (Uint16)'Z' ) )
                {
                    str += (char)event.key.keysym.unicode;
                }
                else if( ( event.key.keysym.unicode >= (Uint16)'a' ) && ( event.key.keysym.unicode <= (Uint16)'z' ) )
                {
                    str += (char)event.key.keysym.unicode;
                }
            }
     
           /* if( ( event.key.keysym.sym == SDLK_BACKSPACE ) && ( strlen(str) != 0 ) )
            {
                str.erase( strlen(str) - 1 );
            }*/
            if( ( event.type == SDL_KEYDOWN ) && ( event.key.keysym.sym == SDLK_RETURN ) )
            {
                namewritten=1;
            }
     
        }
        SDL_EnableUNICODE( SDL_DISABLE );
        drawString(str, 37, 10, font);
    }

  4. #4
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2012
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    problème résolue;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    str[strlen(str)] = (char)event.key.keysym.unicode;
    toujours les pointeurs

  5. #5
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 623
    Points : 1 554
    Points
    1 554
    Par défaut
    Oh non, ton problème n'est pas résolu!

    str pointe bel et bien sur quelque chose, mais il n'y a pas d'espace alloué là où pointe cette variable.... tu vas, à un moment ou un autre, aller écraser quelque chose.... plantage en perspective !
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Effectivement, il faut que tu alloues un espace suffisant pour ce que tu veux faire de ta chaîne ou si tu ne connaît pas la taille de ce que tu veux mettre dedans, allocation par progression géométrique

    Si c'est une taille fixe dès le départ tu peux aussi au mieux utiliser un tableau statique char tab[TAB_SIZE] = { 0 };

    Si tu alloues dynamiquement, oublie pas non plus de libérer l'espace avec free() !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  7. #7
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    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
     
     
    void nameinput(void)
    {
     
        char *str= "";
        SDL_EnableUNICODE( SDL_ENABLE );
        if( event.type == SDL_KEYDOWN )
        {
              //code
        }
     
        SDL_EnableUNICODE( SDL_DISABLE );
        drawString(str, 37, 10, font);
     
    }
    moi quand je vois ça , ça sent les variables globales a des kilomètres...
    A part les fonction qui utilise des callback (ou on doit utiliser des variables globales) , mais la c'est pas le cas la SDL utilise pas callback , les variables globales sont a proscrire , on peut totalement s'en passé en C.

    Après j'ai jamais utilisé SDL_EnableUNICODE( SDL_ENABLE ); , je pense pas qu'elle soit indispensable pour ceux que tu veux faire.

  8. #8
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 623
    Points : 1 554
    Points
    1 554
    Par défaut
    Hello,

    Envoyé par Kanagi
    les variables globales sont a proscrire , on peut totalement s'en passé en C
    Euh, pas tout à fait quand même. Je me vois mal véhiculer à travers toute les fonctions, la variable contenant le pointeur sur la fenêtre principale....
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Moi je n'utilise des variables globales que si elles sont privées comme dans le cas de mon moteur 2D pour les flags d'initialisations des différentes parties du moteur. Sinon effectivement, à proscrire.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  10. #10
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par edgarjacobs Voir le message
    Hello,
    Euh, pas tout à fait quand même. Je me vois mal véhiculer à travers toute les fonctions, la variable contenant le pointeur sur la fenêtre principale....
    En général ,il est mieux de gardé les valeurs dans des structures (et de les lire en arguments).

    On peut s'en passé après je dis pas que quelquefois c'est plus pratique de les utiliser(mais déconseillé quand même) , mais perso je ne les ai jamais utiliser donc il peut lui aussi s'en passer (surtout quand on débute).

Discussions similaires

  1. Probleme audio avec SDL
    Par fab101 dans le forum SDL
    Réponses: 5
    Dernier message: 17/03/2006, 17h31
  2. Problème d'affichage d'un sprite avec SDL
    Par youp_db dans le forum SDL
    Réponses: 1
    Dernier message: 11/02/2006, 18h08
  3. Petit problème avec SDL
    Par Nyarlathotep dans le forum C
    Réponses: 10
    Dernier message: 01/07/2005, 09h10
  4. [debutant]opengl avec sdl sous visual c++
    Par bourinator dans le forum OpenGL
    Réponses: 1
    Dernier message: 13/06/2005, 11h24
  5. Zone de texte avec SDL
    Par bobtux dans le forum OpenGL
    Réponses: 2
    Dernier message: 08/03/2005, 18h47

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