[C con Clase] problema separando funciones.

josep el wendo josepbord en hotmail.com
Mar Jul 5 11:01:00 CEST 2011


Miles de gracias a los dos, ya tengo el programa hecho.

la funcion buscaxnombre se la saltaba porque el cin.getline, como comentabais, recibia el intro o yo que se que, pero con un fflsuhs(stdin); corre de maravilla. 

gracias a todos.

Date: Mon, 4 Jul 2011 17:47:14 +0200
From: srd4121 en njit.edu
To: cconclase en listas.conclase.net
Subject: Re: [C con Clase] problema separando funciones.

Hola Josep,
Bueno, Salvador se me ha adelantado, pero quiero agregar unos matices al código que nos enviaste.
2011/7/4 josep el wendo <josepbord en hotmail.com>







Hola; he cambiado de programa (en vez de dev ahora con codeblocks) y me pasa lo mismo: no separo bien las funciones.

Se trata de un programa para aprender, pero que se supone, gestionaria una agenda (aunque de momento hay que darle las entradas a mano y cada vez que se ejecuta el programa).



les mando el codigo, pero no hace falta que comprueben que está bien y que no; me sobra con que resuelvan mis dudas:
 Si el código es para aprender, DEBO comentarte algunas cosas que he visto en este código fuente:


1. Variables globales: no las necesitas y créeme te pueden complicar la vida MUY fácilmente, por lo que se consideran peligrosas. Si quieres comunicarte con las funciones, usa parámetros, que para eso están.

 2. NO USES 'goto'. No se debería usar para nada (casi nada). En tu caso, se usa el 'goto' a modo de bucle, por lo tanto, USA un bucle; C++ te da hasta tres diferentes tipos de bucles a escoger.
 En cuanto a la segunda duda, te comento que para la opción del menú, lees un solo carácter, pero no recoges el segundo carácter '\n' generado por pulsar la tecla de [ENTER] o [RETURN]. En este caso, aconsejo que leas una cadena de caracteres, pero que aceptes solamente el primer carácter. Por ejemplo,
 char resposta[10]="";...while( resposta[0] != 'x' and resposta[0] != 'X' )  Por cierto, veo un error en 'BuscaxNom()' donde comparas cadenas de caracteres con el operador ==. Escribes:


if ( nombusc==Agenda[s].nom ) Esto no funcionará como esperas. Deberías usar la función estándar 'strcmp()', declarada en <cstring>. Esto es, if ( strcmp(nombusc, Agenda[s].nom) == 0 )
  Espero que esto te oriente. Steven 

_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110705/fdbb1f78/attachment.html>


Más información sobre la lista de distribución Cconclase