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 :

récupérer aléatoirement un char


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 4
    Par défaut récupérer aléatoirement un char
    bonjour à tous.

    voilà, je bosse sur varnish et à l'interieur on implémente du C.

    je me base sur ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
        C{
          char buff[5];
          sprintf(buff,"%d",rand()%2 + 1);
          VRT_SetHdr(sp, HDR_REQ, "\011X-ABtest:", buff);
        }C
    sauf que je ne veux pas récupérer 1 ou 2 mais A ou B

    donc j'ai fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    C{
     
                              char A,B;
                              char AB[] = "A,B";
                              char buff[2];
                              sprintf(buff,"%d",rand()%2);
                             VRT_SetHdr(sp, HDR_REQ, "\011X-ABtest:", AB[buff]); // j'ai mis AB[buff] comme ça AB aura AB[0] ou AB[1], ce qui normalement me donne le contenu de ma variable à l'indice 0 ou 1.
    }C
    et quand je compile j'ai ça:
    ./vcl.1P9zoqAU.c: In function ‘VGC_function_vcl_recv’:
    ./vcl.1P9zoqAU.c:703: error: array subscript is not an integer


    Merci de votre aide


    cdt

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Par défaut
    Bonjour,

    Il n'est pas correcte d'écrire AB[buff], puisque buff n'est pas un indice d'acces, mais un tableau de de 2 char.

    Par contre ,
    char AB[] = "AB";
    AB[rand%2]
    devrait faire ce que tu veux.

    Ta déclaration char A,B; me laisse perplexe...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 4
    Par défaut
    Merci pour ta réponse,

    en fait si je ne déclare pas A,B le compilo me dit qu'ils sont pas déclaré.

    j'ai fait ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    C{
         char AB[] = "AB";
         VRT_SetHdr(sp, HDR_REQ, "\011X-ABtest:", AB[rand()%2]);
    }C
    et j'ai ça comme erreur

    ./vcl.1P9zoqAU.c:646: warning: passing argument 4 of ‘VRT_SetHdr’ makes pointer from integer without a cast
    ./vcl.1P9zoqAU.c:235: note: expected ‘const char *’ but argument is of type ‘char’

    Merci de ton aide

  4. #4
    Invité
    Invité(e)
    Par défaut
    Apparemment la fonction VRT_SetHdr() attend un char* pour 4ème paramètre, et vous lui transmettez un char, normal qu'elle ne soit pas contente.

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/09/2013, 16h18
  2. Réponses: 2
    Dernier message: 26/01/2010, 14h50
  3. récupérer une partie d'un char*
    Par r0d dans le forum C
    Réponses: 5
    Dernier message: 10/11/2005, 14h14
  4. récupérer un nombre aléatoire.
    Par loacast dans le forum C++
    Réponses: 3
    Dernier message: 18/10/2005, 12h37
  5. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 02h35

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