Ver la versión completa : [URGENTE] Duda c++ para tontos
Estoy en mita de una practica y NPI de porque no me coge el CIN en este código.
#include <iostream.h>
void main(){
int num;
Lista l;
cout<<"Introduce el primer nodo: ";
cin>>num;
//AQUI MUERE EL PROGRAMA EN TIEMPO DE EJECUCION
l=Lista(num);
while (num > 0){
cout<<"Introduce el nodo (-1 para terminar): ";
cin>>num;
if (num>0){
l.annadir(num);
}
}
l.Listar();
}
Y la respuesta dle profesor ha sido "resuelvelo tu solo"
Yo flipo.
Ñuño Martínez
16/04/2008, 17:34
Pero qué hace, ¿se para y ya está? ¿Te deja teclear algo? ¿Grita de dolor?
Pregunta tonta: asegúrate de que ha compilado sin errores y avisos.
< - >
Ahora que lo veo, te sobra una llave (?). Ná, olvídalo, que lo he copiado mal. Estoy en ello.
< - >
Vale, pues acabo de compilarlo y funciona, eso sí, sin lista:
#include <iostream.h>
int main (void){
int num;
cout<<"Introduce el primer nodo: ";
cin>>num;
//AQUI MUERE EL PROGRAMA EN TIEMPO DE EJECUCION
while (num > 0){
cout<<"Introduce el nodo (-1 para terminar): ";
cin>>num;
}
} Así que ni idea, tú.
Encontrado, cin lee la línea entera y como el cout no tien salto de linea...error.
Yo no veo problema en el código, pero estás seguro que muere en esa línea y no en:
l=Lista(num);
cambia esta ultima por cout << num << endl; y así compruebas que la entrada de datos está correcta.
edito que me habia colado y habia puesto cout << cin << endl ;)
ok, gracias a todos. Tengo la practica de la semana pasada suspensa solo por ese errorcillo.
No es imprescindible, o no debería serlo ya que si yo quiero que el usuario teclee tras los dos puntos no veo porque tengo que añadir un retorno de carro y que teclee en la línea de abajo ¿¿??
Es el usuario el que añadirá el retorno de carro cuando pulse <enter> tras introducir el numero.
Un apunte, cuando incluyas librerias de c++ (no de c) estas van sin ".h". Depende de las librerias que lleve el compilador te avisan. Ejemplos:
#include <iostream>
#include <fstream>
#include <vector>
#include <map>
...
Bueno, ahora que tengo un rato analizo:
el error no venia del endline, sino de la linea siguiente al cin (l=Lista(num); ). Lo curioso es que si ponía un cout entre esas 2 líneas no se porqué no lo sacaba por pantalla.
Cuando he acabado la práctica me he dado cuenta de que tengo un fallo similar, tras sobrecargar (erróneamente) el operador = he hecho una asignación y después un cout y pasaba de ambos pero no daba error en ningún sitio.
No te olvides al final de poner un cout.flush(); para asegurarte que todo lo que has mandado aparezca en pantalla.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.