SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: sukre_83 en Lunes 29 de Noviembre de 2010, 19:39

Título: problema con funcion
Publicado por: sukre_83 en Lunes 29 de Noviembre de 2010, 19:39
Necesito ayuda con una funcion que al compilar me saca el error:
/*70 cannot convert `std::string' to `int' in initialization */
la declaracion la tengo antes del Main
int RecogeDatos(string);
recogo lo que devuelve en una variable entera:
n=RecogeDatos(Buffer);

y el codigo de la funcion;

int RecogeDatos(string){
  int j=0;
  string ext;
for(j=0;j<Buffer.length()-1;j++){
  ext=Buffer.substr(j,Buffer.length()-1);
}
if((strcmp(ext, ".jpeg") == 0)||(strcmp(ext, ".jpg") == 0)||(strcmp(ext, ".gif") == 0)||(strcmp(ext, ".png") == 0)||(strcmp(ext, ".tif") == 0)){
   estado=1;
  return 1;
}
else{
 
  return 0;
}
Hace tiempo que no practico c y estoy bastante verde en lo referente a sintaxis les agradeceria que me echaran una mano
p.d. resuminedo una funcion que recibe un string y devuelve un entero sintaxis de declaracion y llamda ala funcion.
gracias
Título: Re: problema con funcion
Publicado por: m0skit0 en Lunes 29 de Noviembre de 2010, 23:09
En una función tienes que declarar el nombre del parámetro además de su tipo, es decir:

Código: C
  1. int RecogeDatos(string nombre_del_parámetro)
  2.  
En el prototipo no hace falta, pero en la implementación de la función sí.
Título: Re: problema con funcion
Publicado por: sukre_83 en Martes 30 de Noviembre de 2010, 20:01
gracias moskito ya pude hacerlo rular con tu explicacion :beer:
Título: Re: problema con funcion
Publicado por: alb en Martes 30 de Noviembre de 2010, 20:21
Hola,
Para un tipo como std::string, se puede pasar una referencia constante para no hacer una copia inutil (si no implementa COW de manera eficiente ) :
Código: C++
  1. int RecogeDatos(string const & nombre_del_parámetro)
  2.