Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: cNoob en 19 Junio 2016, 23:26 pm



Título: Problemas con return
Publicado por: cNoob en 19 Junio 2016, 23:26 pm
Hola!
Hoy trate de hace un programa que pide una contraseña al ejecutarlo y trate de hacer una función la cual se encarga de registrar la contraseña que ingresa el resultado (como una variable de string) y devolverla (mediante return) a main para que este a su vez se lo pase a otra función y etc... pero cuando trato de compilar lo que llevo programado hasta ahora me da el siguiente error en la línea 40:
error: cannot convert 'std::string {aka std::basic_string<char>}' to 'int' in return
Supongo que se deberá a un fallo a la hora de devolver el valor, pero no se que hacer...

PDA: Me gustaría también que el programa informase de un error y se cerrase si se superan los 5 intentos y no se si lo hice bien, podrían decirme ya de paso?
Gracias!
Código
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. using namespace std;
  5.  
  6. int PassMenu (string answer, int atmps);
  7. int Password (string answer, string pass);
  8.  
  9. int main ()
  10. {
  11.  
  12.    string answer;//ES LA RESPUESTA QUE DA EL USUARIO
  13.    string pass;//ES LA CONTRASEÑA
  14.    bool access;//DICE SI LA CONTRASEÑA ES TRUE/FALSE
  15.    int atmps=6;//VECES QUE SE HA INTRODUCIDO LA CONTRASEÑA
  16.  
  17.    while(access==false||atmps!=0)//HACE EL MENU DE INTRODUCIR PASS Y CONMPRUEBA SI ESTÁ BIEN
  18.    {
  19.        answer=PassMenu(answer,atmps);
  20.        access=Password(answer, pass);
  21.        atmps--;
  22.    }
  23.  
  24.    if(atmps==0)//SI SE INTRODUCE MAL LA CONTRASEÑA 5 VECES MAL, EL PROGRAMA IMPIDE SEGUIR INTENTANDOLO Y SE CIERRA
  25.    {
  26.        cout<<"ACCESS DENIED"<<endl;
  27.        system("PAUSE");
  28.        exit (EXIT_FAILURE);
  29.    }
  30.  
  31.    system("PAUSE");
  32.    return 0;
  33. }
  34.  
  35.  
  36. int PassMenu (string answer, int atmps)//ES EL DISEÑO DE CUANDO TE PIDE LA CONTRASEÑA
  37. {
  38.    cout<<endl<<endl<<"Attempts: "<<(atmps-1)<<endl<<"PASS: ";
  39.    cin>>answer;
  40.    return answer;
  41. }
  42.  
  43.  
  44. int Password (string answer, string pass)
  45. {
  46.  
  47. }
  48.  


Título: Re: Problemas con return
Publicado por: engel lex en 19 Junio 2016, 23:30 pm
Citar
error: cannot convert 'std::string {aka std::basic_string<char>}' to 'int' in return

no puede convertir un string en un int

Código
  1. int PassMenu (string answer, int atmps)//ES EL DISEÑO DE CUANDO TE PIDE LA CONTRASEÑA
  2. {
  3.    cout<<endl<<endl<<"Attempts: "<<(atmps-1)<<endl<<"PASS: ";
  4.    cin>>answer;
  5.    return answer;
  6. }

solo te pregunto... que tipo es la funcion? que estás retornando? como está declarado lo que retornas?


Título: Re: Problemas con return
Publicado por: cNoob en 19 Junio 2016, 23:43 pm
BUÁ QUE FALLO
Creo que estoy demasiado dormido para ponerme a programar XD
Solo por si las dudas, la función sería de tipo strig o de tipo char*?
(Gracias por la ayuda, soy nuevo con el tema de las funciones)


Título: Re: Problemas con return
Publicado por: engel lex en 19 Junio 2016, 23:44 pm
la que quieras... si quieres retornar string, de tipo string, si quieres retornar char* de tipo char*