Probleme de compilation C++
slybest
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
Scalpweb Messages postés 1467 Date d'inscription Statut Membre Dernière intervention -
Scalpweb Messages postés 1467 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je n'arrive pas a compiler ce programme:
#include <iostream> // classe chaine
#include <conio.h>
using namespace std;
class chaine
{
private:
int longueur; char *adr;
public:
chaine();chaine(char *);chaine(chaine &); //constructeurs
~chaine();
void operator=(chaine &);
int operator==(chaine);
chaine &operator+(chaine);
char &operator[](int);
void affiche();};
chaine::chaine(){longueur = 0;adr = new char[1];} //constructeur1
chaine::chaine(char *texte) // constructeur2
{int i;
for(i=0;texte[i]!='\0';i++);
longueur = i;
adr = new char[longueur+1];
for(i=0;i!=(longueur+1);i++) adr[i] = texte[i];}
void chaine::operator=(chaine &ch)
{ delete adr;
longueur = ch.longueur;
adr = new char[ch.longueur+1];
for(int i=0;i!=(longueur+1);i++)adr[i] = ch.adr[i];
}
int chaine::operator==(chaine ch)
{int i,res=1;
for(i=0;(i!=(longueur+1))&&(res!=0);i++)if(adr[i]!=ch.adr[i])res=0;
return res;}
chaine &chaine::operator+(chaine ch)
{int i;static chaine res;
res.longueur = longueur + ch.longueur;
res.adr = new char[res.longueur+1];
for(i=0;i!=longueur;i++) res.adr[i] = adr[i];
for(i=0;i!=ch.longueur;i++)res.adr[i+longueur] = ch.adr[i];
res.adr[res.longueur]='\0';
return(res);}
char &chaine::operator[](int i)
{static char res='\0';
if(longueur!=0) res = *(adr+i);
return res;}
chaine::~chaine(){delete adr;}
void chaine::affiche()
{int i;
for(i=0;i!=longueur;i++)cout<<adr[i];
cout<<"\n";}
void main(){
chaine a("Bonjour "),b("Maria"),c,d("Bonjour "),e;
if(a==b)cout<<"Gagne !\n";else cout<<"Perdu !\n";
if(a==d)cout<<"Gagne !\n";else cout<<"Perdu !\n";
cout<<"a: ";a.affiche();
cout<<"b: ";b.affiche();
cout<<"d: ";d.affiche();
c = a+b;
cout<<"c: ";c.affiche();
for(int i=0;c[i]!='\0';i++)cout<<c[i];
getch();}
quand je compile sur devc++ ca me met qu'il y a une erreur a la fin a void main() ca me marque must return int
je ne compren pas comment faire pour ke ca marche si qq pouvai m'aider
merci
je n'arrive pas a compiler ce programme:
#include <iostream> // classe chaine
#include <conio.h>
using namespace std;
class chaine
{
private:
int longueur; char *adr;
public:
chaine();chaine(char *);chaine(chaine &); //constructeurs
~chaine();
void operator=(chaine &);
int operator==(chaine);
chaine &operator+(chaine);
char &operator[](int);
void affiche();};
chaine::chaine(){longueur = 0;adr = new char[1];} //constructeur1
chaine::chaine(char *texte) // constructeur2
{int i;
for(i=0;texte[i]!='\0';i++);
longueur = i;
adr = new char[longueur+1];
for(i=0;i!=(longueur+1);i++) adr[i] = texte[i];}
void chaine::operator=(chaine &ch)
{ delete adr;
longueur = ch.longueur;
adr = new char[ch.longueur+1];
for(int i=0;i!=(longueur+1);i++)adr[i] = ch.adr[i];
}
int chaine::operator==(chaine ch)
{int i,res=1;
for(i=0;(i!=(longueur+1))&&(res!=0);i++)if(adr[i]!=ch.adr[i])res=0;
return res;}
chaine &chaine::operator+(chaine ch)
{int i;static chaine res;
res.longueur = longueur + ch.longueur;
res.adr = new char[res.longueur+1];
for(i=0;i!=longueur;i++) res.adr[i] = adr[i];
for(i=0;i!=ch.longueur;i++)res.adr[i+longueur] = ch.adr[i];
res.adr[res.longueur]='\0';
return(res);}
char &chaine::operator[](int i)
{static char res='\0';
if(longueur!=0) res = *(adr+i);
return res;}
chaine::~chaine(){delete adr;}
void chaine::affiche()
{int i;
for(i=0;i!=longueur;i++)cout<<adr[i];
cout<<"\n";}
void main(){
chaine a("Bonjour "),b("Maria"),c,d("Bonjour "),e;
if(a==b)cout<<"Gagne !\n";else cout<<"Perdu !\n";
if(a==d)cout<<"Gagne !\n";else cout<<"Perdu !\n";
cout<<"a: ";a.affiche();
cout<<"b: ";b.affiche();
cout<<"d: ";d.affiche();
c = a+b;
cout<<"c: ";c.affiche();
for(int i=0;c[i]!='\0';i++)cout<<c[i];
getch();}
quand je compile sur devc++ ca me met qu'il y a une erreur a la fin a void main() ca me marque must return int
je ne compren pas comment faire pour ke ca marche si qq pouvai m'aider
merci
A voir également:
- Probleme de compilation C++
- Breach compilation c'est quoi - Guide
- Compilation error: expected unqualified-id before '{' token ✓ - Forum C++
- Problème Compilation Dev-C++ - Forum C++
- Erreur de compilation projet ou bibliothèque introuvable - Forum Excel
- Problème de compilation et d'execution en C - Forum C
7 réponses
Tu essayes de compiler du C++.
La fonction main doit être de type int.
Ca donne :
int main(int argc, char *argv[])
{
... le code ici...
return 0;
}
La fonction main doit être de type int.
Ca donne :
int main(int argc, char *argv[])
{
... le code ici...
return 0;
}
mais il faut ke j'y mette ou tu peu me le remplacer sur mon programme stp
parce ke tu voi la ou c fau c la seul partdonnée par l'exercice lol
parce ke tu voi la ou c fau c la seul partdonnée par l'exercice lol
Ca donnerai ça :
#include <iostream> // classe chaine
#include <conio.h>
using namespace std;
class chaine
{
private:
int longueur; char *adr;
public:
chaine();chaine(char *);chaine(chaine &); //constructeurs
~chaine();
void operator=(chaine &);
int operator==(chaine);
chaine &operator+(chaine);
char &operator[](int);
void affiche();};
chaine::chaine(){longueur = 0;adr = new char[1];} //constructeur1
chaine::chaine(char *texte) // constructeur2
{int i;
for(i=0;texte[i]!='\0';i++);
longueur = i;
adr = new char[longueur+1];
for(i=0;i!=(longueur+1);i++) adr[i] = texte[i];}
void chaine::operator=(chaine &ch)
{ delete adr;
longueur = ch.longueur;
adr = new char[ch.longueur+1];
for(int i=0;i!=(longueur+1);i++)adr[i] = ch.adr[i];
}
int chaine::operator==(chaine ch)
{int i,res=1;
for(i=0;(i!=(longueur+1))&&(res!=0);i++)if(adr[i]!=ch.adr[i])res=0;
return res;}
chaine &chaine::operator+(chaine ch)
{int i;static chaine res;
res.longueur = longueur + ch.longueur;
res.adr = new char[res.longueur+1];
for(i=0;i!=longueur;i++) res.adr[i] = adr[i];
for(i=0;i!=ch.longueur;i++)res.adr[i+longueur] = ch.adr[i];
res.adr[res.longueur]='\0';
return(res);}
char &chaine::operator[](int i)
{static char res='\0';
if(longueur!=0) res = *(adr+i);
return res;}
chaine::~chaine(){delete adr;}
void chaine::affiche()
{int i;
for(i=0;i!=longueur;i++)cout<<adr[i];
cout<<"\n";}
int main(int argc, char *argv[])
{
chaine a("Bonjour "),b("Maria"),c,d("Bonjour "),e;
if(a==b)cout<<"Gagne !\n";else cout<<"Perdu !\n";
if(a==d)cout<<"Gagne !\n";else cout<<"Perdu !\n";
cout<<"a: ";a.affiche();
cout<<"b: ";b.affiche();
cout<<"d: ";d.affiche();
c = a+b;
cout<<"c: ";c.affiche();
for(int i=0;c[i]!='\0';i++)cout<<c[i];
getch();
return 0;
}
#include <iostream> // classe chaine
#include <conio.h>
using namespace std;
class chaine
{
private:
int longueur; char *adr;
public:
chaine();chaine(char *);chaine(chaine &); //constructeurs
~chaine();
void operator=(chaine &);
int operator==(chaine);
chaine &operator+(chaine);
char &operator[](int);
void affiche();};
chaine::chaine(){longueur = 0;adr = new char[1];} //constructeur1
chaine::chaine(char *texte) // constructeur2
{int i;
for(i=0;texte[i]!='\0';i++);
longueur = i;
adr = new char[longueur+1];
for(i=0;i!=(longueur+1);i++) adr[i] = texte[i];}
void chaine::operator=(chaine &ch)
{ delete adr;
longueur = ch.longueur;
adr = new char[ch.longueur+1];
for(int i=0;i!=(longueur+1);i++)adr[i] = ch.adr[i];
}
int chaine::operator==(chaine ch)
{int i,res=1;
for(i=0;(i!=(longueur+1))&&(res!=0);i++)if(adr[i]!=ch.adr[i])res=0;
return res;}
chaine &chaine::operator+(chaine ch)
{int i;static chaine res;
res.longueur = longueur + ch.longueur;
res.adr = new char[res.longueur+1];
for(i=0;i!=longueur;i++) res.adr[i] = adr[i];
for(i=0;i!=ch.longueur;i++)res.adr[i+longueur] = ch.adr[i];
res.adr[res.longueur]='\0';
return(res);}
char &chaine::operator[](int i)
{static char res='\0';
if(longueur!=0) res = *(adr+i);
return res;}
chaine::~chaine(){delete adr;}
void chaine::affiche()
{int i;
for(i=0;i!=longueur;i++)cout<<adr[i];
cout<<"\n";}
int main(int argc, char *argv[])
{
chaine a("Bonjour "),b("Maria"),c,d("Bonjour "),e;
if(a==b)cout<<"Gagne !\n";else cout<<"Perdu !\n";
if(a==d)cout<<"Gagne !\n";else cout<<"Perdu !\n";
cout<<"a: ";a.affiche();
cout<<"b: ";b.affiche();
cout<<"d: ";d.affiche();
c = a+b;
cout<<"c: ";c.affiche();
for(int i=0;c[i]!='\0';i++)cout<<c[i];
getch();
return 0;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Non j'ai pas compilateur sous la main.
Après j'ai pas assez de temps pour tout regarder mais essayes un peu ça a pas l'air très complexe.
D'après ce que j'ai vu, ça implémente une classe pour gérer les chaines... 9a devrait t'afficher Perdu et Gagne au début et d'autres trucs après.
Après j'ai pas assez de temps pour tout regarder mais essayes un peu ça a pas l'air très complexe.
D'après ce que j'ai vu, ça implémente une classe pour gérer les chaines... 9a devrait t'afficher Perdu et Gagne au début et d'autres trucs après.