imanedaoudi
Messages postés82Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention24 octobre 2005
-
15 sept. 2005 à 12:39
imanedaoudi
Messages postés82Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention24 octobre 2005
-
16 sept. 2005 à 16:02
Salut tous le monde,
j'ai le fonction suivante
[cpp]
vecteur* vecteur:: readvecteur(int *nbrev,char *fichier)
{
int i=0,cp=0,j=0;
float value,val1,val2;
ifstream Al;
std::vector<vecteur>vect(50);
Al.open("fichier.txt");
while (i <(100*d) ) // *2 ici car on va lire x et y
{
Al >> value;
val1=value;
Al >> value;
val2=value;
vect[cp].x=val1;
vect[cp].y=val2;
vect[cp].id=compt++;
cp++;
i=i+d;
}
(*nbrev)=cp;
Al.close();
return vect;
}/cpp avec la class vecteur:
[cpp]
class vecteur
{
public :
};
/cpp le message d'erreur:
error C2440: 'return' : cannot convert from 'class std::vector<class vecteur,class std::allocator<class vecteur> >' to 'class vecteur *'
comment je peux résoudre ce problème?
Merci pour toutes proposition
imanedaoudi
Messages postés82Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention24 octobre 2005 15 sept. 2005 à 21:31
j'ai ulilisé ca:
while(getline(Al, line))
value = strtod(line,NULL);
mais il m'as généré une erreur: error C2065: 'getline' : undeclared identifier
et je suis presque sur que ce n'est pas un problème de biblio; j'utilise dans mon programme les biblio
#include<cstdio>
#include<cmath>
#include
#include<ctime>
#include<conio.h>
#include<cstring>
#include<stdlib.h>
#include <fstream>
#include<vector>
imanedaoudi
Messages postés82Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention24 octobre 2005 15 sept. 2005 à 21:48
le getline normalement comprend 2 paramètres:
istream& getline (char* s, streamsize n );
donc la condition pour lire tt les donnees est: while(getline(Al, line))
c'est ce que je pense en faites
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 15 sept. 2005 à 21:57
hum... je dirais plutôt: stream.getline(line,nb_max)
du coup:
Al.getline(line,NB_MAX); // à toi de définir Nb_MAX suivant ton format de fichier
while (line[0]) // tant que getline retourne quelquechose
{
... // traitement des données
Al.getline(line,NB_MAX);
}
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Vous n’avez pas trouvé la réponse que vous recherchez ?
imanedaoudi
Messages postés82Date d'inscriptionvendredi 20 mai 2005StatutMembreDernière intervention24 octobre 2005 15 sept. 2005 à 22:10
cela parait logique mais rien que la ligne Al.getline(line,line); me génère l'erreur:
error C2664: 'class std::basic_istream<char,struct std::char_traits<char> > &__thiscall std::basic_istream<char,struct std::char_traits<char> >::getline(char *,int)' : cannot co
nvert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'char *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 15 sept. 2005 à 22:40
Normal qu'il ne lise qu'une seule ligne si tu ne code pas la boucle qu'il y a 4 messages au-dessus . Le while(line[0]) c'est juste pour tester si getline retourne quelquechose. S'il ne retourne rien, on arrête de lire...
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...