Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/07/2010, 04:29
lluisr
 
Fecha de Ingreso: julio-2010
Mensajes: 4
Antigüedad: 13 años, 10 meses
Puntos: 0
C++ leer fichero txt con getline, parser particulas

Buenas estoy trabajando en un parser para un sistema de particulas y no puedo arrancar por un problema con getline, a ver si alguien le echa una ojeada y me puede decir algo.

viendo unos ejemplos pongo el getline solo

#include <string.h>
#include <iostream>
#include <fstream>
#include <cassert>
using namespace std;

void carregaFitxer(){
string nom_fitxer = "scene_xml.xml";
ifstream fitxer ("scene_xml.xml");
char str[100];
string line;
const char INICI = '<';
const char FINAL = '>';
vector<string> particules;

if (!fitxer.is_open())
{
cout << "fitxer ko" << endl;
exit(0);
}
else
{
while( getline (fitxer,line) ){
cout << line << endl;
}
fitxer.close();
}

}

NO FUNCIONA , ERROR=> 'getline' : no se encontro el identificador

otra forma q si funciona, pero no quiero tener una cadena de 100 caracteres, quiero cadenas de justo la longitud de la linia del fichero:

void carregaFitxer(){
string nom_fitxer = "scene_xml.xml";
ifstream fitxer ("scene_xml.xml");
char str[100];
string line;
char aux;
const char INICI = '<';
const char FINAL = '>';
vector<string> particules;

if (!fitxer.is_open())
{
cout << "fitxer ko" << endl;
exit(0);
}
else
{
while( fitxer.getline (str,100) ){
cout <<str<<endl;
cout <<sizeof(str)<<endl;
}
fitxer.close();
}

}

pq hay error en el primer caso?? muchos ejemplos de la red son asi pero no me funciona

como podria ajustar en el segundo caso las cadenas str justo lo q hay escrito en el fichero y no tener basura en las posiciones vacias?? inicalizo las str con los 100 indices = null ??

muchas gracias de antemano!