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 :

utilisation des fonctions avec comme paramètre des variable de type CHAR


Sujet :

C

Vue hybride

arnaudperfect utilisation des fonctions... 03/01/2008, 15h12
Médinoc Ben oui, il faut déclarer,... 03/01/2008, 15h15
arnaudperfect ok, dans mon cas, ca sera : ... 03/01/2008, 15h21
arnaudperfect effectivement, cela... 03/01/2008, 15h26
Médinoc Ben non. Ton avant-dernier... 03/01/2008, 15h31
arnaudperfect j'ai un autre soucie : ... 03/01/2008, 15h43
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut utilisation des fonctions avec comme paramètre des variable de type CHAR
    Bonjour,

    J'utilise plusieurs fonctions avec des chaines de caractères :

    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
    #include <stdio.h>
    #define TAILLE_IP 1000
     
    void parseur()
    {
        FILE* fichier = NULL;
        char ip[TAILLE_IP] = "";
     
        fichier = fopen("AKF_computer.txt", "r");
     
        if (fichier != NULL)
        {
            while (fgets(ip, TAILLE_IP, fichier) != NULL) // On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL)
            {
            // On Suprime les caractères de saut de ligne  
            if (ip[strlen(ip) - 1] == '\n')
            {
                ip[strlen(ip) - 1] = '\0'; 
            }
                printf("%s : ",ip);
                reponse(ip);   
            }
            fclose(fichier);
        }
    }
    Ici je parse un fichier texte dans le but de récupérer les adresses IP qu'il contient. Ensuite, j'appelle une autre fonction qui reçoit en paramètre ma chaine de caractères (adresse IP) :

    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
    #include <stdio.h>
    void reponse(ip)
    {
        int reponse = test(ip);
     
        printf("%ld",reponse); 
     
        if(reponse==1)
        {
            printf("Installation possible\n");                  
        }
        else if(reponse==2)
        {
            printf("Partage c$ inaccessibles\n");              
        }
        else if(reponse==3)
        {
            printf("Pas de reponse au Ping\n");           
        }
    }
    La question que je me pose, c'est si je dois déclarer le type de variable que reçois en paramètre ma 2eme fonction ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void reponse(ip)
    {
    ...
    }
    Car pour une variable de type entier, dans les cours que j'ai pu lire, il faut le faire, mais dans mon cas, si je déclare le type (char) la compilation plante.

    Je pose cette question par après dans mon programme, j'ai besoin d'appeler une fonction qui à besoin de deux paramètres de deux types différents (char et int)

    merci d'avance de vos lumières.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ben oui, il faut déclarer, mais ce ne sera pas de type char.
    Ce sera sans doute de type pointeur sur char (char *) ou pointeur sur char constants (const char *).

    D'ailleurs, si tu regardes le prototype d'autres fonctions comme fopen(), tu verras qu'elles prennent en paramètre un const char *.
    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.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    ok, dans mon cas, ca sera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void reponse(char *ip)
    {
    ...
    }
    ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    effectivement, cela fonctionne

    appel de la fonction avec en paramètre mon adresse ip
    la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void reponse(char *ip)
    {
    ...
    }

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ben non.
    Ton avant-dernier post était potable, le dernier est revenu en arrière et est complètement faux.

    PS: Es-tu sûr que tu as vraiment besoin d'un pointeur non-const ?
    (oui, c'est dans ce sens-là qu'on pose la question, pas l'inverse)
    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 éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    j'ai un autre soucie :

    appel d'une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char ip[] = "129.0.0.1";
    reponse(&ip);
    fonction "reponse" (si je fais un printf de "ip" dans cette fonction aucun problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <stdio.h>
    void reponse(char *ip)
    {
        test(&ip);
    }
    fonction test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int test(char *ip)
    {
        printf("%s\n",ip);
    }
    lorsque j'affiche, j'ai P√" qui s'affiche...

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    OK, l'heure est grave: Ton compilateur est mal configuré.
    Quel compilo utilises-tu ?
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Requete avec comme parametre des variables.
    Par NenciariniL dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 24/05/2015, 11h28
  2. [Toutes versions] Croiser des données avec comme synthèse des données alphanumériques
    Par Philippe Tulliez dans le forum Contribuez
    Réponses: 0
    Dernier message: 19/02/2014, 08h48
  3. surcharge de fonction avec comme paramètre Object
    Par poporiding dans le forum C++
    Réponses: 8
    Dernier message: 14/07/2006, 03h47
  4. [VB.NET][Excel] utiliser des fonction Excel comme xlToRight
    Par Alexj51 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/03/2006, 12h10
  5. Retrouver les valeurs des paramètres des fonctions d'une DLL
    Par Bernard Martineau dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 10h42

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