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!