[C con Clase] problema separando funciones.

Steven Davidson srd4121 en njit.edu
Lun Jul 4 17:47:14 CEST 2011


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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110704/534f1a9e/attachment.html>


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