Methode istream::getline et la lecture d'un fichier...

Methode istream::getline et la lecture d'un fichier... - C++ - Programmation

Marsh Posté le 04-08-2004 à 17:16:59    

:hello:
 
Je voudrais lire betement un fichier texte, et j'ai un ptit problème avec getline... :/
 
Si je me refère à cette page http://cplusplus.com/ref/iostream/istream/getline.html où l'on peut lire ceci :

Citation :

istream& getline (char* s, streamsize n, char delim );
 Parameters.
 
s
    A pointer to an array of characters.  
n
    The maximum number of characters to store, including the ternimating null character.
    This is an integer value of type streamsize.  
delim
    The delimiter. The operation of extracting succesive characters is stopped when delimiter is read. This parameter is optional, if not specified the function considers '\n' the delimiter.


j'en deduis que l'on passe à getline le pointeur d'un tableau de caractères où l'on souhaite recuperer ce que la fonction lit dans le fichier.
 
Or quand je fais cela, le compilo me sors une erreur :

Code :
  1. char cNumber[ID_TAILLE], //Numéro de l'enigme récupéré
  2. //Ouverture du fichier en lecture texte
  3. ifstream iFsTxtOut(cNomFichier, ios::in);
  4. //Lecture du champs 1 de la ligne
  5. iFsTxtOut.getline(cNumber, ID_TAILLE,  ";" );


 
il me dit que :

Citation :

error C2664: 'std::basic_istream<_Elem,_Traits>::_Myt &std::basic_istream<_Elem,_Traits>::getline(_Elem *,std::streamsize,_Elem)' : cannot convert parameter 3 from 'const char [2]' to 'char'
        with
        [
            _Elem=char,
            _Traits=std::char_traits<char>
        ]
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast


Yé doit être fatigué car yé né comprend pas, pourtant il me semble bien lui donner ce qu'il veut comme premier paramètre... :??: Si quelqu'un sait qu'est-ce que je dois changer, je suis preneur... :jap:
 
(Le but ici etant au final de lire dans un fichier des valeurs séparées par des point virgules, et ligne par ligne...)
 
Mercÿte. :jap:


Message édité par Jesus Army le 04-08-2004 à 19:57:27
Reply

Marsh Posté le 04-08-2004 à 17:16:59   

Reply

Marsh Posté le 04-08-2004 à 17:35:39    

iFsTxtOut.getline(cNumber, ID_TAILLE,  ';');
suffit de comprendre ce que te dis le compilo...


Message édité par SoWhatIn22 le 04-08-2004 à 17:36:05
Reply

Marsh Posté le 04-08-2004 à 17:37:04    

Beh pour moi il me dit qu'il veut un char mais pourtant normalement c'est un char* qu'il devrait demander... :??:

Reply

Marsh Posté le 04-08-2004 à 17:38:43    

Ptain chuis fatigué moi, j'ai du relire au moins 15 fois l'erreur en lisant "parameter 1" au lieu de 3... :'(
 
Bon beh du coup forcement ca marche mieux...


Message édité par Jesus Army le 04-08-2004 à 17:39:38
Reply

Marsh Posté le 04-08-2004 à 18:30:01    

utiliser
 
std::istream & getline(std::istream &, std::string & ) et rien d'autre :o

Reply

Marsh Posté le 04-08-2004 à 19:09:52    

Pas tout comprÿte daisolai je fatigue, (en plus vais avoir réunion et rentrer chez moi à pas d'heure :'() mais finalement j'utilise ca, et ca marche plutot bien : :)

Code :
  1. iFsTxtOut.get(cNumber, TAILLE, ';');


C'est mal ? :'(


Message édité par Jesus Army le 04-08-2004 à 19:10:01
Reply

Marsh Posté le 04-08-2004 à 19:16:25    

oui c'est mal :o ça plante ça foire c'est crade

Reply

Marsh Posté le 04-08-2004 à 19:49:18    

[:sisicaivrai] [:sisicaivrai] [:sisicaivrai] [:sisicaivrai] [:sisicaivrai]

Reply

Marsh Posté le 04-08-2004 à 19:51:45    

tu as essayé ce que je t'ai dit ?

Reply

Marsh Posté le 04-08-2004 à 19:54:03    

Ce que tu veux que je fasse ca serait ca : :??:

Code :
  1. iFsTxtOut.getline(cNumber, ";" );

Reply

Marsh Posté le 04-08-2004 à 19:54:03   

Reply

Marsh Posté le 04-08-2004 à 19:59:58    

non
 
std::getline(iFsTxtOut, aString, ';');
 
 
d'ailleurs si ton fichier est de sorti, ça me parait pas une bonne idée d'essayer d'y lire

Reply

Marsh Posté le 05-08-2004 à 09:58:37    

:jap:
 
De cette manière il va lire iFsTxtOut jusqu'à ce qu'il rencontre ';' et le mettre dans aString ? Sbien ca ? :ange: (Mais comment ca se fait que ce ne soit pas documenté ca dans la "doc" de getline ? :??:)
 
Et je l'ai appellé "Out" dans le sens ou j'en extrait les données et donc que je ne fais uniquement que de le lire... ;)(ca sera un fichier généré via tableur)


Message édité par Jesus Army le 05-08-2004 à 10:00:06
Reply

Marsh Posté le 05-08-2004 à 10:38:29    

comment ça se fait que tu ne trouves pas la doc de getline ? moi je la trouve partout.
 
 
ton out est un nonsens, une lecture, c'est une entrée, un input. y a rien qui sors, c'est que des informations entrantes. donc s/Out/In

Reply

Marsh Posté le 05-08-2004 à 11:42:36    

Un lien vers des infos sur getline est sur le premier post, je n'ai pas dit que je n'avais pas trouvé celle ci... :ange:
 
Et tu as raison pour le out, en fait je devais être fatigué hier car c'est effectivement iFsTxtIn que je devrais appeller mon objet... :ange: :) (C'etait surement de savoir que j'allais arriver à quasiment 23h chez moi qui a du me perturber... :'()


Message édité par Jesus Army le 05-08-2004 à 11:43:11
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed