Wenas... no se si es por el tiempo sin programar o wtf pero tengo problemas con getline() Lo explico en el codigo:
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
ofstream sal("Agenda.txt");
sal<<"Pedro Perez :"<<18<<endl;//Agrego un nombre y espacios
sal<<"Maria Rodriguez :"<<56<<endl;//para completar 29 caracteres
sal.close(); //mas el ':'
ifstream ent("Agenda.txt");
int c=2;
char reg[c][30];
int edad[c];
for (int i=0;ent;i++){
ent.getline(reg[i],30);//Aca deberia extraer los 29 caracteres y agregar a reg un '\0'
ent.ignore();//Aca ignorar el ':'
ent>>edad[i];//Pes leer la edad
ent.ignore();//Ignorar el fin de linea...
}
cout<<reg[0]<<"T"<<edad[0]<<endl;//Mostrar tal cual como esta en el archivo
cout<<reg[1]<<"T"<<edad[1]<<endl;//La T era un ':', pero lo use para ver
//si conseguia el error
ent.close();
system("PAUSE");
return EXIT_SUCCESS;
}
Me imagino el error esta en getline()... La use pasandole como delimitador ':' y funciono pero igual me quedo la duda de porque no funciona...
Gracias a quien pueda aclarar la duda...
Saludos...
Asi es como "funciona" bueno mas o menos porque el for da una vuelta de mas... como que si no consigue el EOF, pero no se porque el ejemplo de arriba no lo hace =.=
ofstream sal("Agenda.txt");
sal<<"Pedro Perez :"<<18<<endl;
sal<<"Maria Rodriguez :"<<34<<endl;
sal.close();
ifstream ent("Agenda.txt");
char name[2][30];
int age[2];
for (int i=0;ent;i++){
ent.getline(name[i],31,':');
cout<<name[i];
ent>>age[i];
cout<<age[i]<<endl;
ent.ignore();
cout<<i<<endl;
}
ent.close();
Por favor alguien que me aclare porque no funciona el code del mensaje anterior y porque este da una vuelta de mas...
Saludos...