CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

mon parcours en C++

sesshoumaru
sesshoumaru
Niveau 4
25 mai 2005 à 01:55:35

salut tout le monde !
JE me suis mis il y a 2 jours au C++ et j´essaye de créer un programme qu´on m´a proposé de faire pour ameliorer ma comprehension.
un programme qui consiste en une liste de pays dans un tableau avec des données et tout . ..
pour commencer j´ai crée la fonction lire info pays.

mainteannt j´ai fais la compilation . .. mais ca marche pas . .. quelqu´un pourrais m´aider a corriger les erreurs ?

  1. include < cstdlib>
  2. include < iostream>
  3. include < stdlib.h>

using namespace std;

struct pays
{
char nom;
char capitale;
int population;
char regime;
};
char table_de_pays[100];

pays p;
int nb,place;
char nom,nom_fich;
char commande;
bool trouve;

int lire_info_pays()
{

cout < < " entrer le nom d´un pays ( rien pour arreter ) : " << endl;
cin > > p.nom ;

cout < < " entrer la capitale de ce pays : " << endl;
cin > > p.capitale;
cout < < " entrer la population de ce pays : " < <endl,
cin > > p.population;
cout < < " entrer le regime ( re(republique),mc ( monarchie), di ( dictature ) " < < endl;
cin > > p.regime;

system("PAUSE");
return EXIT_SUCCESS;
}

Merci

sesshoumaru
sesshoumaru
Niveau 4
25 mai 2005 à 01:59:10

et svp, que veut dire ´linker error´undefined refeence to winmain@16´ ?

ainsi que id returned 1 exit status :) ?

wizagab
wizagab
Niveau 8
25 mai 2005 à 02:01:36

Bah t´as oublié quelques point-virgules mais je doute qu´elles étaient nescessaire sinon j´ai pas vraiment regardé :ok:

sesshoumaru
sesshoumaru
Niveau 4
25 mai 2005 à 02:18:15

svp, pour que le topic soit lisible pour les prochains debutants, si vous n´avez pas vraiment de reponse, abstenez vous :D merci ; ) ( sans vouloir offencer qui que ce soit :) )

LGV
LGV
Niveau 28
25 mai 2005 à 02:29:29

tu as créé un projet windows, et tu n´as pas de point d´entrée ( le linker cherchant un winmain, qui est le point d´entrée pour un programme donc, au risque de me repeter). Recrée un projet console, et fait une fonction " main" ( va voir dans ton bouquin ou dans un tut pour les details)

sesshoumaru
sesshoumaru
Niveau 4
25 mai 2005 à 02:45:51

je suis arrivé a faire marcher le programme le voici:

  1. include < cstdlib>
  2. include < iostream>
  3. include < stdlib.h>

using namespace std;

struct pays
{
char nom[20 + 1];
char capitale[20 + 1];
int population;
char regime [2 + 1];
};
char table[100];
struct pays p;

int nb,place;
char nom,nom_fich;
char commande;
bool trouve;

int main(pays)
{

cout < < " entrer le nom d´un pays ( rien pour arreter ) : " << endl;
cin > > p.nom ;

if ( p.nom ! = 0 )
{
cout < < " entrer la capitale de ce pays : " < < endl;
cin > > p.capitale;
cout < < " entrer la population de ce pays : " < <endl;
cin > > p.population;
cout < < " entrer le regime ( re(republique),mc ( monarchie), di ( dictature ) " < < endl;
cin > > p.regime;
}

system("pause");
return 0;
}

1/tout d´abord je voudrais savoir si la condition if ( p.nom ! = 0 ) verifie bien qu´un nom a été entré.

2/ cette fonction n´est pas la fonction main mais en la renommanant autrement elle ne fonctionne pas meme si j´en rajoute une autre.
il faut toujours qu´elle soit au debut ?

lockscash
lockscash
Niveau 6
25 mai 2005 à 02:52:13

En fait, le main c´est mieu de le mettre toujours à la fin.

La règle c´est que tu ne peux utiliser une fonction seulement si elle est déclaré ou défini avant.

Sinon ta condition sur p.nom ne marche pas il me semble, c´est un tableau de char, quoique tu écrive chiffre ou lettre fera quelque chose.

Si tu veux tester si il rien dans ton tableau c´est :

if ( p.nom ! = " " )

Je pense mais c´est à vérifier.

sesshoumaru
sesshoumaru
Niveau 4
25 mai 2005 à 03:11:00

je sais qu´en turbo pascal le test est :
if length ( p.nom) < > 0 then . ..
begin . .. end ;

mais en c ++ je connais pas l´equivalent de length.

aussi j´ai essayé de mettre main a la fin comme il suit :

  1. include < cstdlib>
  2. include < iostream>
  3. include < stdlib.h>

using namespace std;

struct pays
{
char nom[20 + 1];
char capitale[20 + 1];
int population;
char regime [2 + 1];
};
char table[100];
struct pays p;

int nb,place;
char nom,nom_fich;
char commande;
bool trouve;

int lire(pays)
{
cout < < " entrer le nom d´un pays ( rien pour arreter ) : " << endl;
cin > > p.nom ;

if ( p.nom ! = 0 )
{
cout < < " entrer la capitale de ce pays : " < < endl;
cin > > p.capitale;
cout < < " entrer la population de ce pays : " < <endl;
cin > > p.population;
cout < < " entrer le regime ( re(republique),mc ( monarchie), di ( dictature ) " < < endl;
cin > > p.regime;
}
}

int main(pays)
{

while ( commande ! = " q" )
{
cout < <
"-------------------------------------------------
----";<<endl;
cout < < " l - lire de nouvelles données" < < endl;
cout < <
"-------------------------------------------------
----";<<endl;

switch ( commande)
{
case ´l´ :
{
lire(pays);
cout < < " merci" < < endl ;
}
}

system("PAUSE");
return 0;
}
}

mais il semble que cela soit loint du turbo pascal... language sur lequel j´ai deja programmé ce programme fort sympathique . ..

quelqu´un pourrais t il m´eclairer sur les erreurs commises ? :)

sesshoumaru
sesshoumaru
Niveau 4
25 mai 2005 à 03:11:40

desolé pour le manque de commentaires, je commenterais tout le programme dés que possible !

sesshoumaru
sesshoumaru
Niveau 4
25 mai 2005 à 09:40:38

j´ai 2 3 petites questions sur le c++ et etant donné mon niveau je n´irai pas parasiter le topic de JYY :D alors aidez moi svp :

1/ a quoi correspond length ( longueur) d´un char en cpp?

2/ comment tester si un char est nul ( pour quitter le pe programme si rien n´est entré par exemple)

3/je crée un tableau table_entrées[100], comment faire en sorte que je puisse l´utiliser tel que table_entrées devienne t ( ex: t[i] )

4/dans un programme j´ai besoin que l´utilisateur rentre uniquement des chiffres, au cas contraire le programme redemande a l´utilisateur de les reentrer ( exemple , entrer une population ou l´utilisateur ecrit France ( qui n´est pas un chiffre a mon avis ) ...

5/ si je limite un char a 20 caracteres :
char nom[20];
comment verifier lors de sa lecture que les 20 caracteres n´ont pas été depassés?

:D merci de repondre car j´aimerais vraiment progresser ; ) :D

JeanYvesYves
JeanYvesYves
Niveau 10
25 mai 2005 à 09:41:10

Sesshoumaru > bon, j´ai lu vite fait pour le moment.

int main(pays)
--> c´est faux.
Ton point d´entrée doit etre de la forme :

int main()

( il y a une autre forme, mais pour le moment, fait pas attention)
crée bien tes projets en mode " console application"

tout comme en Pascal, quand tu commences ton programme, c´est un " begin" tout seul :)

le < > est défini par ! = en C

l´équivalent de length est strlen
regarde mon tuto paragraphe F.1.1.

JeanYvesYves
JeanYvesYves
Niveau 10
25 mai 2005 à 09:48:06

bcp de réponses dans le paragraphe F.1.1 :)

1) strlen
2) char* s =NULL;
if ( s== NULL)
3) pas compris. Tu peux copier une lettre ? ( t[i] = table[i]) ou toute la chaine ? ( strcpy(t,table) ( allocation d´abord)
4) fait une fonction qui teste que ce ne soit que des chiffres. if ( t[i]>=´0´ && t[i]<=´9´)
5) scanf("%20[^\n]", buf);

sinon, regarde l´approche C++ avec string : ce sera + simple :)
chapitre F.2.

sesshoumaru
sesshoumaru
Niveau 4
25 mai 2005 à 11:11:14

je m´excuse, j´avai lu tes tutos dans l´ordre et je n´ai donc pas lu le F1.1 :)... je tacherais de tout lire avant de raconter des betises :D ; )

JeanYvesYves
JeanYvesYves
Niveau 10
25 mai 2005 à 11:36:01

Ben disons que le cheminement, c´est pour aller le plus vite possible a l´affichage graphique, avec le minimum de connaissances
mais les annexes, c´est pour se fortifier dans les différents domaines. Regarde juste les titres :)
Apres, libre a toi de rentrer dans les tutos si tu désires t´approfondir dans tel ou tel cas !

sesshoumaru
sesshoumaru
Niveau 4
25 mai 2005 à 16:23:14

JYY, excuses moi de m´etre mal exprimé pour la question 3/, en fait je voulais qu´au lieu d´avoir a ecrire table[] a chaque fois,il suffise de declarer t[] :) qui signifierai la meme chose . ..

j´ai crus voir un truc du genre typedef table t ;
mais je ne sais pas si c´est ca :) . ..

merci

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment