Probleme programme

Résolu
Bonjour, tout d abord, je suis etudiant et je travail sous anjuta. je veux refaire un programme avec dev c++ (j ai pas linux chez moi), et la compilation ne marche pas.... aidez moi svp ;)
voila mon pgm :
#include <iostream>
#include <string.h>
#include <conio.h>
#define MAX_TB 200
#define NBR_CHAMP_MAX 8
using namespace std;

class tPageweb
{
private :
char TableParams[MAX_TB];
int TableLongNom[NBR_CHAMP_MAX];
int TableDebutNom[NBR_CHAMP_MAX];
int TableDebutValeur[NBR_CHAMP_MAX];
int TableLongValeur[NBR_CHAMP_MAX];
int NombreChamp;
public :
void Initialize(char* chaine);
void Afficher();
bool DecomposerChaine();
char* LireNom(int Numnom,char* Nom);
char* LireValeur(int Numchamp, char* Valeur);
int LireNbrChamp();
}

/*********************************************************************************
*
* Initialize
*
**********************************************************************************/

void tPageweb::Initialize(char* chaine)
{
int b = strlen(*chaine);
if (b <= MAX_TB)
strcpy(TableParams,*chaine);
}
/*********************************************************************************
*
* Affichage
*
**********************************************************************************/
void tPageweb::Afficher()
{
int i = 0;
char chaine1;
char chaine2;
while(i < NombreChamp)
{
cout<<LireNom(i,&chaine1)<<"a pour valeur : "<<
LireValeur(i, &chaine2)<<endl;
cout<<"___________________________________________________________"<<endl;
}
getch ();
}
/*********************************************************************************
*
* Decomposition
*
**********************************************************************************/
bool tPageweb::DecomposerChaine()
{
/*************************************************************************
* Nombre de champs, debut nom et valeur
**************************************************************************/
int i = 0;
int j = 1;
int k = 0;
TableDebutNom[0] = 0;
NombreChamp = 1;
while (TableParams[i] != '\0')
{
if (TableParams[i] == '&')
{
TableDebutNom[j] = i;
j++;
}
if (TableParams[i] == '=')
{
NombreChamp++;
TableDebutValeur[i] = k;
k++;
}
i++;
}
}

int main()
{
char Machaine[MAX_TB] = "Nom=MonNom&Prenom=Moprenom&Age=MonAge";
tPageweb MaPage;
printf("<html><body>%s</body></hmtl>\n",Machaine);
MaPage.DecomposerChaine();
MaPage.Afficher();
getch();
return 0;
}

voila, il est assez simple, mais bon...je comprends pas :'(
merci d avance pour l aide
Configuration: Windows XP
Firefox 2.0.0.8

17 réponses

Résumé de la discussion

Une étudiante utilisant Anjuta et souhaitant réécrire un programme C++ sous Dev C++ sur Windows XP se heurte à des échecs de compilation liés au code fourni. Plusieurs réponses évoquent des erreurs de syntaxe et de portage : point-virgule manquant, usage incorrect de strlen/strcpy sur des char*, et incohérences entre les signatures des méthodes. D'autres intervenants proposent des pistes pratiques, comme corriger les prototypes, ajuster les appels à LireNom et LireValeur, et tester le code dans un environnement compatible afin d'isoler les fautes. Des essais sur Code::Blocks et des vérifications d'erreurs soulignent des difficultés récurrentes liées à la portabilité et à la cohérence entre la définition et l'implémentation.

Bobot (l’IA à votre service)
  1. Salut,

    C'est le genre de probléme qui semble extrêment complexe à s'en arracher les cheveux (je connais ;) )

    mais la solution est simple : mettre un point-virgule à la fin d'une déclaration de classe :)

    TSalm
    36
    1. Bonjour TSalm,

      Moi être petit Padawam en herbe qui vient de passer une heure à m'arracher les cheveux.
      Résultat : 2 points virgules ajoutés grâce à votre commentaire.
      Problème résolu. Merci donc :-) P! de déboguage !
      0
    2. comme quoi meme 6 ans après les posts peuvent être utiles \o/
      0
    3. Whaou , topic toujours vivant :-)
      Ben de rien Lapin ! Ca me fait plaisir ;-)
      0
    4. yaa maalem ya maalem
      0
  2. 34 C:\Dev-Cpp\pgm1\pgm.cpp new types may not be defined in a return type
    34 C:\Dev-Cpp\pgm1\pgm.cpp two or more data types in declaration of `Initialize'
    34 C:\Dev-Cpp\pgm1\pgm.cpp prototype for `tPageweb tPageweb::Initialize(char*)' does not match any in class `tPageweb'
    19 C:\Dev-Cpp\pgm1\pgm.cpp void tPageweb::Initialize(char*)
    34 C:\Dev-Cpp\pgm1\pgm.cpp `tPageweb tPageweb::Initialize(char*)' and `void tPageweb::Initialize(char*)' cannot be overloaded
    C:\Dev-Cpp\pgm1\pgm.cpp In member function `tPageweb tPageweb::Initialize(char*)':
    35 C:\Dev-Cpp\pgm1\pgm.cpp invalid conversion from `char' to `const char*'
    35 C:\Dev-Cpp\pgm1\pgm.cpp initializing argument 1 of `size_t strlen(const char*)'
    37 C:\Dev-Cpp\pgm1\pgm.cpp invalid conversion from `char' to `const char*'
    37 C:\Dev-Cpp\pgm1\pgm.cpp initializing argument 2 of `char* strcpy(char*, const char*)'

    voila, y en avais plus avant, mais j ai reussi (la haut, tu as le pgm que j ai pour le moment ;) )
    1
    1. Salut !

      J'ai essayé chez moi avec Code:Blocks, sous Vista et j'ai comme l'impression que ça plante autant ;D
      Je n'ai jamais fait ça de ma vie mais comme personne ne t'aidait... Je m'y suis peut être pris comme un pied ;D
      :: === verifieurDeCodeSitesOuForumCpp, Debug ===
      :: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++
      C:\Users\Documents\Projets Programation\verifieurDeCodeSitesOuForumCpp\main.cpp:35: error: new types may not be defined in a return type
      C:\Users\Documents\Projets Programation\verifieurDeCodeSitesOuForumCpp\main.cpp:35: error: two or more data types in declaration of `Initialize'
      C:\Users\Documents\Projets Programation\verifieurDeCodeSitesOuForumCpp\main.cpp:35: error: prototype for `tPageweb tPageweb::Initialize(char*)' does not match any in class `tPageweb'
      C:\Users\Documents\Projets Programation\verifieurDeCodeSitesOuForumCpp\main.cpp:19: error: candidate is: void tPageweb::Initialize(char*)
      C:\Users\Documents\Projets Programation\verifieurDeCodeSitesOuForumCpp\main.cpp:35: error: `tPageweb tPageweb::Initialize(char*)' and `void tPageweb::Initialize(char*)' cannot be overloaded
      C:\Users\Documents\Projets Programation\verifieurDeCodeSitesOuForumCpp\main.cpp:: In member function `tPageweb tPageweb::Initialize(char*)':
      C:\Users\Documents\Projets Programation\verifieurDeCodeSitesOuForumCpp\main.cpp:36: error: invalid conversion from `char' to `const char*'
      C:\Users\Documents\Projets Programation\verifieurDeCodeSitesOuForumCpp\main.cpp:36: error:   initializing argument 1 of `size_t strlen(const char*)'
      C:\Users\Documents\Projets Programation\verifieurDeCodeSitesOuForumCpp\main.cpp:38: error: invalid conversion from `char' to `const char*'
      C:\Users\Documents\Projets Programation\verifieurDeCodeSitesOuForumCpp\main.cpp:38: error:   initializing argument 2 of `char* strcpy(char*, const char*)'
      :: === Build finished: 9 errors, 1 warnings ===
      
      

      Je ne connais pas le langage C++, désolé j'aurais bien aimé t'aider.

      Bonne chance !
      1
      1. Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe de sa
        catégorie :
        • « Poussin » de 6 à 7 ans
        • « Pupille » de 8 à 9 ans
        • « Minime » de 10 à 11 ans
        • « Cadet » après 12 ans je vx savoir la repense c obligé
        1
        1. fais un cc de ton programme pour voir
          1
          1. Salut !
            Réponse ou pas ton topic n'a absolument rien à faire là.
            Crée un nouveau topic, avec un titre bien spécifique et avec la question que tu te poses TOI.

            Ensuite quand quelqu'un te demandes si tu as déjà essayé, montre que c'est bien le cas.
            On veut t'aider pas te mâcher le travail. Si tu as la flemme tant pis...
            -1
            1. je ne demande pas que l on me mache le taff mais seulement que l on m expliquepourqu oi sa passe sous anjuta et pas sous devcpp
              0
              1. Salut !
                Désolé nagashima je ne m'adressais pas à toi mais à loulou0, qui semble avoir compris. ^^
                Je suis passé pour l'agressif là, encore dsl... ;)
                0
                1. lol c est moi qui m excuse, j avais mal compris. as de probleme . a bientot
                  0
                  1. je veux savoir comment optimiser un algrithme?
                    0
                    1. bonjour,
                      il faudrait deja apprendre quelques regles de politesse avant d'apprendre a optimiser un algo...
                      0
                  2. pour ton probleme avec l age : ' je le fais en direct ^^'

                    #include <conio.h>
                    #include <string.h>
                    #include <iostream>
                    using namespace std;

                    int age;
                    while (1) //boucle infini, tu peux mettre getch() != 'q' dedans, et q pour quitter
                    {
                    cout << "quel age as - il?"<< endl;
                    cin >> age;

                    if (age==6 || age == 7)
                    cout << "poussin" << endl;

                    .
                    .
                    .
                    0
                    1. calculer la factorielle N!=1.2.3........d un entier naturel N on respectant que 0!=1
                      0
                      1. je te renvoie au post 15...
                        0
                      2. @myperenvoie le ici stp
                        0
                      3. @loulou0Salut !

                        Si tu ne comprend pas ce qu'on te dit, pourquoi continuer à poster ?????
                        C'est toi qui devrais te faire renvoyer ouais.

                        Donc si tu comprend toujours pas :
                        "BONJOUR" tu connais ?
                        0
                      4. @SmallFitzok et merci d'avance
                        0
                      5. bjr SVP moi aussi j'ai un bleme de : two or more data types in declaration of SVP keske je dois faire??
                        0