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 :

erreur C2440(programme de débutant)


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 26
    Par défaut erreur C2440(programme de débutant)
    Je me pratique en c++ et pour ce programme il me fait un erreur C2440 et j'ai cherché et je ne trouve pas pourquoi..Pouvez vous m'aider? merci..


    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
    #include<iostream.h>
    #include <stdio.h>
    #include <string.h>
     
    //declaration de fonctions
     
    void fonc1(char CH1[],char CH2[]);
     
    //fonction principale****************************************************
     
    void main(void)
    {  
        char CH1[100], CH2[100] ;
     
        cout<<"Introduisez la premiere chaîne de caracteres : "<<endl;
        gets(CH1);
        cout<<"Introduisez la deuxieme chaîne de caracteres : "<<endl;
        gets(CH2);
     
        fonc1(CH1,CH2);
     
     
    }      
     
    //fonctions secondaires ***********************************************
     
    //fonction N1
     
    void fonc1(char CH1[],char CH2[])
    {
         char CH3[100] ;
        int* ptCH3  ;
        ptCH3 = &CH3[0];
     
     
     
     
        strcpy(CH3, CH1);
        strcat(CH3, "");
        strcat(CH3, CH2);
     
     
     
     for (int count = 0;CH3[count]!='\0'; count = count + 1) 
                          cout<< (*ptCH3 + count) <<endl;
     
     
    }


    balises [code] ajoutées par r0d, merci d'y penser dorénavant

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Par défaut
    hello,

    #include<iostream.h>
    #include <stdio.h>
    #include <string.h>

    c'est du C==> essaye de remplacer par

    #include<iostream>
    #include <ctdio>
    #include <string>

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Par défaut
    Salut,

    C'est quoi une erreur "erreur C2440" ? Pour les non utilisateur de Visual C++ ce n'est pas tres parlant ! Il nous en faut un peu plus pour repondre.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 26
    Par défaut
    Compiling...
    3-final-a.cpp
    c:\users\raphael\desktop\travail long\3-final-a.cpp(35) : error C2440: '=' : cannot convert from 'char *' to 'int *'
    Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    Error executing cl.exe.

    3-final-a.exe - 1 error(s), 0 warning(s)

  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, c'est assez explicite: Tu as un tableau de char, et tu cherches à avoir un pointeur sur int dessus...
    C'est normal que sans un cast, ça te jette...

    PS: Déjà utiliser gets() en C, c'est un truc à ne surtout pas faire. Mais alors l'utiliser en C++, c'est une insulte! Utilise la classe std::string et la fonction std::getline() à la place.
    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
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 292
    Billets dans le blog
    2
    Par défaut
    Effectivement, ton code est un horrible mélange de C et de C++, qui peut entrainer les pires erreurs.

    -> Comme il a été dit, les en-têtes en c++ c'est:

    #include<iostream>
    #include <ctdio>
    #include <string>

    -> char CH3[100] ;
    C'est du C. En C++ on utilise la classe string

    -> gets, strcpy et strcat c'est du C. En c++ on utilise les flux ou les fonctions membres de la classe string.

  7. #7
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Par défaut
    tout est dans le message d'erreur...



    essaye ca:

    char CH3[100] ;
    char* ptCH3 ;
    ptCH3 = &CH3[0];

  8. #8
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    L'erreur est parfaitement signalée par le compilo....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char CH3[100] ;
    int* ptCH3  ;
    ptCH3 = &CH3[0]; // là il faut un cast
    Sinon le code est du C, pas du C++ !!

  9. #9
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Grilled deux fois, tout à été dit !!!

Discussions similaires

  1. erreur de programme
    Par acik59 dans le forum C
    Réponses: 7
    Dernier message: 16/05/2007, 12h40
  2. erreur cannot find bean..(débutant)
    Par mackab dans le forum Struts 1
    Réponses: 16
    Dernier message: 11/05/2007, 17h29
  3. erreur dans programme java sur des vecteurs 3D
    Par HighSchool2005 dans le forum Langage
    Réponses: 18
    Dernier message: 15/02/2007, 16h38
  4. erreur compilation programme
    Par auxisteff dans le forum C
    Réponses: 8
    Dernier message: 09/02/2007, 21h27
  5. aide petit programme pour débutant
    Par kartp0rqx dans le forum C
    Réponses: 16
    Dernier message: 14/10/2005, 19h31

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