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 :

Pré-remplir une saisie clavier


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    ceo
    Inscrit en
    Août 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ceo

    Informations forums :
    Inscription : Août 2005
    Messages : 62
    Points : 48
    Points
    48
    Par défaut Pré-remplir une saisie clavier
    Bonjour,

    j'aimerais pré-remplir une saisie clavier avec scanf, c'est à dire que je demande à l'utilisateur de rentrer une donnée mais j'aimerais qu'il y ait déjà une donnée pré-remplie, qu'il peut ensuite modifier si l'envie lui prend.

    Y'a t-il un moyen simple de le faire?
    Merci d'avance.

  2. #2
    Membre actif Avatar de moins1
    Homme Profil pro
    Autre
    Inscrit en
    Février 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Autre
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 85
    Points : 222
    Points
    222
    Par défaut
    Fait quelque chose comme ça

    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
    #include <stdio.h>
    #include <string.h>
     
    int main(void)
    {
        char s[] = "Pre-rempli";
        char *p;
        char rep[128];
     
        printf("Reponse: ");
        fgets(rep, 128, stdin);
        if(p = strchr(rep, '\n'))
            *p = '\0';
        if(!strlen(rep))
            strcpy(rep, s);
        printf("Rep: %s", rep);
        return 0;
    }
    Bon ça été fait rapidement.



    EDIT: Ou encore

    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
     
    #include <stdio.h>
    #include <string.h>
     
    int main(void)
    {
        char rep[128];
     
        printf("Reponse: ");
        fgets(rep, 128, stdin);
        if(!rep[0] || rep[0] == '\n')
            strcpy(rep, "Pre-rempli");
        printf("Rep: %s", rep);
        return 0;
    }

  3. #3
    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
    Par convention en ligne de commande, on donnait souvent la valeur pré-remplie entre parenthèses:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("Reponse (%s): ", preRempli);
    Et bien sûr, pour être sûr d'avoir l'affichage avant le fgets(), un petit fflush(stdout) entre les deux, vu qu'on n'a pas de \n à la fin de la chaîne.
    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.

  4. #4
    Membre du Club
    Profil pro
    ceo
    Inscrit en
    Août 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ceo

    Informations forums :
    Inscription : Août 2005
    Messages : 62
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    merci pour vos réponses et désolé pour mon retour tardif.
    C'est quasiment ce qu'il me faut, mais n'y-t-il pas un moyen d'afficher la valeur et de pouvoir la modifier avant l'envoi (comme une case d'un formulaire pré-remplie avec javascript sur le net)?

    Est-ce que le seul moyen est de simuler une entrée au clavier? Et est-ce compliqué à faire?

    Merci d'avance.

  5. #5
    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
    Ce genre de chose n'est pas faisable en standard. Ça nécessite typiquement la saisie au vol de touches ("terminal en mode RAW" sous *n*x) pour déplacer le curseur dans la valeur affichée...
    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.

  6. #6
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Tu peux toujours ecrire sur l'entree standard et voir ce qu'il se passe. Pour un ancien projet il me semblait l'avoir fait. En gros ca listait les fichiers d'un dossiers, t'en selectionne un et ca le retournait. Donc si executait la commande comme ceci :

    rm `my_cmd [nom_du_dossier]`

    Ca supprimait les fichiers selectionnes par mon programme.

Discussions similaires

  1. Récupérer une saisie clavier de l'utilisateur
    Par le y@m's dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 23/09/2019, 19h25
  2. Affecter variable avec une saisie clavier
    Par DI_2007 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/03/2007, 19h46
  3. Affecter variable avec une saisie clavier
    Par DI_2007 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 28/03/2007, 13h43
  4. interrompre une requete pour une saisie clavier
    Par ricoree78 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 24/11/2006, 16h44
  5. [Stratégie] attendre un évenement sur une saisie clavier?
    Par ukanoldai dans le forum Général Java
    Réponses: 4
    Dernier message: 28/02/2006, 17h05

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