Bonjour!
Je suis en train de faire un programme dans lequel on gère un inventaire (style jeu vidéo).
Il semble qu'il y est un problème avec les strctures (pour des objets comme des mangues, ou un lance-roquettes ... )), j'en ai d'ailleurs fait un tableau.
Voici les différentes parties de mon programme, et la liste d'erreurs (toutes concernant la déclaration de ce tableau d'objets.
C'est sûrement une erreur grossière, mais c'est tjs celles que je ne vois pas .
Si vous pourriez m'aider, ce serait super ! Et si j'ai mal expliqué un truc, dites le moi. Merci !
DANS OBJ_MAIN.CPP :
#include <iostream>
#include <string>
#include "obj_string.h"
using namespace std;
objet biblio [4];
biblio[0]={"mangue","une","cette",3,1,40};
biblio[1]={"ananas","un","cet",1,1,30};
biblio[2]={"lance-roquettes","un","ce",20,2,17};
biblio[3]={"fusil à clous","un","ce",17,2,13};
...
#include <iostream>
#include <string>
using namespace std;
#ifndef OBJ_STRUCT_H_
#define OBJ_STRUCT_H_
struct objet
{
string n_objet;
string determ;
string demons;
int taille;
int cat_obj;
int ind_freq;
};
...
#endif /*OBJ_STRUCT_H_*/
LISTE D'ERREURS :
obj_main.cpp
.\obj_main.cpp(5) : error C2143: syntax error : missing ';' before 'using'
.\obj_main.cpp(12) : error C2466: cannot allocate an array of constant size 0
.\obj_main.cpp(12) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
.\obj_main.cpp(12) : error C2371: 'biblio' : redefinition; different basic types
.\obj_main.cpp(10) : see declaration of 'biblio'
.\obj_main.cpp(12) : error C2440: 'initializing' : cannot convert from 'const char [7]' to 'int'
There is no context in which this conversion is possible
.\obj_main.cpp(12) : error C2440: 'initializing' : cannot convert from 'const char [4]' to 'int'
There is no context in which this conversion is possible
.\obj_main.cpp(12) : error C2440: 'initializing' : cannot convert from 'const char [6]' to 'int'
There is no context in which this conversion is possible
.\obj_main.cpp(13) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
.\obj_main.cpp(13) : error C2369: 'biblio' : redefinition; different subscripts
.\obj_main.cpp(10) : see declaration of 'biblio'
.\obj_main.cpp(13) : error C2440: 'initializing' : cannot convert from 'const char [7]' to 'int'
There is no context in which this conversion is possible
.\obj_main.cpp(13) : error C2078: too many initializers
.\obj_main.cpp(14) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
.\obj_main.cpp(14) : error C2369: 'biblio' : redefinition; different subscripts
.\obj_main.cpp(10) : see declaration of 'biblio'
.\obj_main.cpp(14) : error C2440: 'initializing' : cannot convert from 'const char [16]' to 'int'
There is no context in which this conversion is possible
.\obj_main.cpp(14) : error C2440: 'initializing' : cannot convert from 'const char [3]' to 'int'
There is no context in which this conversion is possible
.\obj_main.cpp(14) : error C2078: too many initializers
.\obj_main.cpp(15) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
.\obj_main.cpp(15) : error C2369: 'biblio' : redefinition; different subscripts
.\obj_main.cpp(10) : see declaration of 'biblio'
.\obj_main.cpp(15) : error C2440: 'initializing' : cannot convert from 'const char [14]' to 'int'
There is no context in which this conversion is possible
.\obj_main.cpp(15) : error C2440: 'initializing' : cannot convert from 'const char [3]' to 'int'
There is no context in which this conversion is possible
.\obj_main.cpp(15) : error C2440: 'initializing' : cannot convert from 'const char [3]' to 'int'
There is no context in which this conversion is possible
.\obj_main.cpp(15) : error C2078: too many initializers
euh deja t'es en C++, pourquoi t'utilise pas des class a la places des struct??
Bon l'erreur ne peut pas venir de la ...
[quote]
.\obj_main.cpp(5) : error C2143: syntax error : missing ';' before 'using'
[/quote]
ca veut dire que ya truc qui cloche avant :
[quote]using namespace std;
[/quote]
or le dernier truc avant ca c'est :
[quote]#include "obj_string.h"[/quote]
essaie de voir si t'as pas un pb au niveau de ton header, et envoie le nous en entier si tu vois pas
__________________________
L'élève heureux est celui qui, comme la rivère, suit son cours dans son lit.
Et n'oubliez pas :[b]Seb, c'est bien![/b]
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !
P.S. j'utilise des structures car je n'ai que peu de programmation derriere moi, et que les classes, j'apprend. (iut d'info, premiere annee, mais ils st en retard ds le programme... )
ha les gars au secours!! je viens de voir le point virgule à la fin du header !!
MAIS
cela n'a malheureusement rien changé au schmilblik pour le tableau (déclaré en dehors du "int main()". Enfin, juste avant, pour avoir des variables globales.)
le fait de le declarer en global ne doit pas le pertuber normalement... Même si c'est pas toptop de faire ca :wink:
ce qui doit le gener, c'est :
[quote]biblio[0]={"mangue","une","cette",3,1,40};
biblio[1]={"ananas","un","cet",1,1,30};
biblio[2]={"lance-roquettes","un","ce",20,2,17};
biblio[3]={"fusil à clous","un","ce",17,2,13};
[/quote]
ca faut le mettre dans le main, ce sont des lignes de codes, pas de simples déclarations.
Sinon un petit truc sur le fond : pourquoi ne pas plutot stocker le genre de ton objet (masculin/feminin) dans un bool( TRUE pour les hommes evidement :wink:) et apres faire gerer les accords par une fonction?
__________________________
L'élève heureux est celui qui, comme la rivère, suit son cours dans son lit.
Et n'oubliez pas :[b]Seb, c'est bien![/b]
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !
[quote]Sinon un petit truc sur le fond : pourquoi ne pas plutot stocker le genre de ton objet (masculin/feminin) dans un bool( TRUE pour les hommes evidement ) et apres faire gerer les accords par une fonction? [/quote]
C'est sur que ca serait bien plus astucieux et pratique coté ressources (1 bit au lieu d'une dizaine d'octets pour chaque objet....), c'est pas vraiment négligeable... :wink:
__________________________
Sujet résolu ? Pensez à mettre le tag [img]http://www.ressources.moteurprog.com//Ressources/Images/Forum/Resolu.gif[/img]
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la [url=http://www.forum.moteurprog.com/FAQ/FAQ.php?ID_Forum=32]FAQ[/url] et que le sujet n'est pas traité parmis les [url=http://www.moteurprog.com/Tutoriaux/Index.php?ID_Annuaire=32]tutoriaux[/url] ou les [url=http://www.moteurprog.com/Articles/Index.php?ID_Annuaire=32]articles[/url] avant de poster dans le [url=http://www.forum.moteurprog.com/forum.php?ID_Forum=32]forum C#[/url].
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !
cout<<"vous avez ramlassé ";
if (b[x].genre) cout<<"un";
cout<< b[x].nom<<endl;
Bouarf... Après tout, je me demande...
Au fait, la taille du string d'adapte en fonction de son contenu ou pas ? (allocation dynamique...)
parce que les "char [30]" me prennaient le choux...
oui si tu fais du c++ utilises un string, c'est bp plus pratique!!
à mon avis doit bien y avoir une allocation dynamique (sinon, comment ca peut marcher??) donc n'hesite pas, en plus ca rend le code plus clair en general
__________________________
L'élève heureux est celui qui, comme la rivère, suit son cours dans son lit.
Et n'oubliez pas :Seb, c'est bien!
ben t'es sur que tu n'utilises pas tes variables à des endroits où elles sont pas déclarées??
si tu fais :
void bidul()
{
test=0;
}
int main()
{
int test;
bidul();
return 0;
}
ca compile pas vu que 'test' n'est pas déclaré dans bidule()!
revoie tes cours sur les déclarations, le rayon d'action des variables et tout ca. Je dis pas ça parceque j'ai pas envie de t'expliquer (bon si, un peu, j'avoue) mais ça sera plus constructif pour toi si tu trouves par toi même!
__________________________
L'élève heureux est celui qui, comme la rivère, suit son cours dans son lit.
Et n'oubliez pas :Seb, c'est bien!