Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Tengo un problema con C

Iniciado por Leoheart, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

Leoheart

                                Estoy empezando a programar con C. :ojo: y tengo el siguiente problema. He escrito este código:
#include

void gets2(int, int);
main()
{
   int x=4, y=7;
   gets(x, y);
}

void gets2(int xx, int yy)
{
   printf("El primero es %d, el segundo es %d", xx,yy);


}

Y me da el siguiente error:

C:Javiprueba.cpp(7) : error C2664: 'gets' : cannot convert parameter 1 from 'int' to 'char *'

Por favor me gustaria que me lo solucionaseis lo antes posible gracias. :loco:

[ Este Mensaje fue editado por: Leoheart el 2002-06-21 14:26 ]                                
oding!

Astharoth

                                Hola.


Prueba a cambiar la llamada que haces a la funcion "gets" por la que si has escrito tu "gets2".

"gets" es una funcion de la libreria de C que tiene un proposito y parametros totalmente diferentes a la que has escrito tu :sonriendo:

Saludos, Astharoth.
                               

synchrnzr

                                Po zi, más bien parece que te has dejado el 2 de tu gets, lo otro ya parece que lo tengas en cuenta :ojo:                                

samsaga2

                                gets es una función estandard del C que lee una linea del stdin y la mete en un array de caracteres (que es el parametro que te pide un char*).
Como han dicho antes tu funcion la declaras con el nombre de gets2 y llamas a la funcion gets (que no es la tuya).
En situaciones normales el compilador te responde como que no existe dicha función, pero al ser una función estandard del C el compilador cree que es la función estandard la que intentas usar.
                               

Leoheart

                                Muchas gracias por ayudarme, ahora luego lo pruebo y os lo comunico. Es que estoy empezando en esto de la programacion y es ke me lio un poco. :ojo:                                
oding!

Leoheart

                                Ooohh que error mas tonto e tenido estaba llamando a una funcion que existia ahora si que funciona, Thank You :ojo:                                
oding!

Tei

                                sugerencia:
no hace falta que utilices nombres locales como XX cuando en otras funciones usas X ...como si tubieras miedo de que colisionaran. La funcion que tiene XX jamas podra ver la variable X, asi que podias haber reusado el nombre X, ...es mucho mas seguro conocer realmente el ambito de las variables que andar con estos miedos por el mundo.
de echo, el unico ambito que te debe preocupar desde dentro de una funcion es el global, asi si creas una variable global X tener cuidado de que estas leyendo dentro de una funcion que declare char x;  
Creo que el compilador resuelve esto tomando la X del ambito mas cercano, el local obviamente, asi que la X global en ese caso no se veria.. bla bla bla :riendo:D                                

fiero

                                Totalmente de acuerdo con Tei, y además, yo añadiria que utilices nombres en español para tus funciones, así no habrá problema de que utilices el nombre de alguna función propia del lenguaje o librerias, como te ha pasado con "gets"

un saludo                                
www.videopanoramas.com Videopanoramas 3D player






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.