erreur d'execution link.exe - C++ - Programmation
Marsh Posté le 28-03-2005 à 21:02:12
oh du C
passe ton istream par & déjà.
ensuite while(fichierclient.eof()==0)
c'est pas bon.
teste chaque >>
if (stream_in >> var) { ca baigne } else { marne }
et le type de retour de main est int
et remplace tes char* par des std::string
Marsh Posté le 28-03-2005 à 21:05:18
c'st normal que ca link pas, tu declares un :
void telechargerfichier(Client TabClient[TMAX][50],ifstream fichierclient,int &nbclient)
et tu définies un
void telechargerfichier(Client TabClient[TMAX][50],ifstream fichierclient,int nbclient)
(note l'absence de ref pour nbclient)
du pt de vue du compilo c'st pas la meme chose
Marsh Posté le 28-03-2005 à 21:10:12
yoooo
jai pas tout compris ton truc (paske je suis nul? )
le truc ifsrteam je pense avoir compris
je dois mettre ifstream&nomdufichier ??
sinon en fait en cours on s'est jamais vraiment servi de fichier et le reste de tes explications je pige pas trop
Marsh Posté le 28-03-2005 à 21:12:20
bon melange pas tout
d'un coté y'a ton pb, d'un autre les recommandations de taz
pour ton pb, je t'ai filé la solution. Les recommandations de taz sont la pour que ton code deviennent moins cracra, ce qui ne serait pas un mal
il te dit de passer le istream par ref plutot que par valeur, de verifier qu'une lecture a pas merdé et surtout, de laisser tomber ces engeances de Satan que sont les char * pour les remplacer par les benis std::string
Marsh Posté le 28-03-2005 à 21:12:52
passe les fichiers par références. Pas par copie. D'ailleurs, pourquoi à quoi il te sert ce paramètre dans ta fonction ?
Marsh Posté le 28-03-2005 à 23:10:13
merci les gens
euh taz ta question c pkoi j'ai mi le fichier en parametre c bien ca?
c parce qu'en fait dans mon mini projet il est demandé de le mettre en paramettre donc j'ecoute
Marsh Posté le 28-03-2005 à 23:20:46
Non taz il te dit qu'il faut suivre les cours plus sérieusement sinon tu vas avoir des problèmes plus tard face à des roumains 10x plus compétents et 10x moins chers.
Marsh Posté le 28-03-2005 à 20:58:53
Voilà je vien de finir d'ecrire un petit sous programme et j'avais 0 erreur
mais quand j'ai voulu l'executer j'ai eu ces 2 erreurs
error LNK2001: unresolved external symbol "void __cdecl telechargerfichier(struct Client (* const)[50],class ifstream,int & )" (?telechargerfichier@@YAXQAY0DC@UClient@@Vifstream@@AAH@Z)
Debug/miniprojetsspgm2.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Voici le programme :
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
#include<string.h>
const int TMAX=100;
struct Identite
{
char nomclient[25];
char prenomclient[25];
int ageclient;
char statutclient;
};
struct DateEmprunt
{
int jour;
int mois;
int annee;
};
struct Client
{
Identite idclient;
DateEmprunt datesignature;
int montantemprunte;
int txinteret;
int duree;
int montantinterets;
};
void telechargerfichier(Client TabClient[TMAX][50],ifstream fichierclient,int&nbclient);
void main()
{
int i;
Client tableauclient[TMAX][50];
ifstream fiClient;
int nombreclient;
telechargerfichier(tableauclient,fiClient,nombreclient);
for(i=0;i<nombreclient;i++)
{
cout<<tableauclient[i]<<"/n";
}
}
void telechargerfichier(Client TabClient[TMAX][50],ifstream fichierclient,int nbclient)
{
char nomfic[40];
int i=0;
cout<<"Quel est le nom du fichier ou se trouvent les donnees?";
cin>>nomfic;
fichierclient.open(nomfic,ios::in);
if(fichierclient.fail())
{
cout<<"ouverture de "<<nomfic<<" impossible"<<endl;
exit(-1);
}
else
{
while(fichierclient.eof()==0)
{
fichierclient>>TabClient[i]->idclient.nomclient;
fichierclient>>TabClient[i]->idclient.prenomclient;
fichierclient>>TabClient[i]->idclient.ageclient;
fichierclient>>TabClient[i]->idclient.statutclient;
fichierclient>>TabClient[i]->datesignature.jour;
fichierclient>>TabClient[i]->datesignature.mois;
fichierclient>>TabClient[i]->datesignature.annee;
fichierclient>>TabClient[i]->montantemprunte;
fichierclient>>TabClient[i]->txinteret;
fichierclient>>TabClient[i]->montantinterets;
i++;
}
nbclient=i;
cout<<"Il y a "<<nbclient<<" clients";
}
fichierclient.close();
}
Voilà si vous avez une idée n'hesitez pas ^^