elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con programa  (Leído 1,538 veces)
lionheart23

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Problema con programa
« en: 25 Abril 2014, 10:36 am »

Tengo el siguiente codigo en C++

list<string> Libro::leer()
{
list<string> palabras;
cin >> ISBN;
cin >> ao;
cin >> Ncap;
cin.get(); //Para quitar de la entrada el salto de linea
getline(cin,Titulo);
getline(cin,Autores);
palabras.push_back(Titulo);
aparicion ap;
contCapitulos=1;
contParrafos=1;
Libro lib = *this;
int y = ap.leerAparicion(lib,contCapitulos,contParrafos);
int u;

NPar = 1;
if (y==0) NPalabras = 1;
else NPalabras = 0;
while(y!=1){
u = y;
y = ap.leerAparicion(lib,contCapitulos,contParrafos);
palabras.push_back(ap.getPalabra());
if (y==0) NPalabras++;
else if ((y==2) && (y!=u)) {aumentaParrafos(); NPar++;}
else if (y==3) { aumentaCapitulos();
reinicioParrafos();
if (u!=2) NPar++;}
}
if (u==2) NPar--;

return palabras;
}


Y la clase aparicion esta definida asi:

string siguienteLetra()
{
unsigned int str; //Int donde estara el valor entero de la letra
string letra;
str = cin.get(); //con cin.get() vamos obteniendo las letras de 1 en 1.
if (cin.eof()) return "-";
if (str == 32) {
return " ";

}
else if ((str >= 65) && str <= 90)
{
str = tolower(str);
letra = (char)str;
return letra;
}
else if (str == 195)
{
str = cin.get();
switch (str)
{
case 161: return "a";
break;
case 177: return "ñ";
break;
case 169: return "e";
break;
case 186: return "u";
break;
case 173: return "i";
break;
case 179: return "o";
break;
case 188: return "u";
break;
case 129: return "a";
break;
case 137: return "e";
break;
case 141: return "i";
break;
case 147: return "o";
break;
case 154: return "u";
break;
case 156: return "u" ;
break;
case 145 : return "ñ";
break;
default: return " ";
}
}
else if (str == 10) {
letra = "\n";
return letra;}
else if (str >= 97 && str <= 122) { letra =(char)str; return letra;}
else return " ";


}

string siguientePalabra(int j){

string palabra;
int i = 0;
j= 0;
palabra = siguienteLetra();
bool continuacion;

while(palabra.at(i) == ' ') {palabra=siguienteLetra();}

if (palabra.at(i) == '\n'){ continuacion = false;}
else if (palabra.at(i) == '-'){ continuacion = false;return "-";}
else continuacion = true;
while (continuacion){

string c= siguienteLetra();

while(c.at(0) == ' '){
j=1;
c=siguienteLetra();
}

if (c.at(0) == '\n'){ continuacion = false;}
else if (j==1) {cin.putback(c.at(0)); continuacion=false;}
else palabra = palabra + c;
}

return palabra;

}

int aparicion::leerAparicion(Libro &lib, int cap, int par)
{
libro = lib;
capitulo = cap;
parrafo = par;
int j=0;
palabra = siguientePalabra(j);
while(palabra.at(0) == ' ') palabra = siguientePalabra(j);   
if (palabra.at(0) == '\n' && j==0) return 2;
else if (palabra == "findecapitulo") {
if (cap == libro.getNcap()) return 1;
return 3;
}
else if (palabra.at(0) == '-') return 1;
else {return 0; }

}


El problema esta, en que cuando ejecuto me da un error pero si quito el echo de que en leer(en el primero) intente almacenar las apariciones en una lista ese error no aparece, por lo que quería saber si alguno sabría a que se debe que de error al intentar almacenar las palabras.


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Problema con programa
« Respuesta #1 en: 25 Abril 2014, 10:45 am »

edita tu mensaje... decora el código con las etiquetas GeSHi y luego empezamos a hablar


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema, con programa->HELP PLZ « 1 2 »
Programación Visual Basic
newbY 12 6,077 Último mensaje 22 Noviembre 2006, 18:15 pm
por newbY
Problema programa VB
Programación Visual Basic
34Gl3 S1lV3R 2 2,725 Último mensaje 31 Enero 2008, 16:47 pm
por Chefito
Problema con un programa
Ingeniería Inversa
azazael 8 5,121 Último mensaje 4 Julio 2008, 10:23 am
por apuromafo CLS
Problema en mi programa (PIC)
Electrónica
laluchi 5 5,361 Último mensaje 30 Octubre 2008, 20:01 pm
por Meta
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines