Problemas con return

Iniciado por cNoob, 19 Junio 2016, 23:26 PM

0 Miembros y 1 Visitante están viendo este tema.

cNoob

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 (cpp) [Seleccionar]
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

int PassMenu (string answer, int atmps);
int Password (string answer, string pass);

int main ()
{

    string answer;//ES LA RESPUESTA QUE DA EL USUARIO
    string pass;//ES LA CONTRASEÑA
    bool access;//DICE SI LA CONTRASEÑA ES TRUE/FALSE
    int atmps=6;//VECES QUE SE HA INTRODUCIDO LA CONTRASEÑA

    while(access==false||atmps!=0)//HACE EL MENU DE INTRODUCIR PASS Y CONMPRUEBA SI ESTÁ BIEN
    {
        answer=PassMenu(answer,atmps);
        access=Password(answer, pass);
        atmps--;
    }

    if(atmps==0)//SI SE INTRODUCE MAL LA CONTRASEÑA 5 VECES MAL, EL PROGRAMA IMPIDE SEGUIR INTENTANDOLO Y SE CIERRA
    {
        cout<<"ACCESS DENIED"<<endl;
        system("PAUSE");
        exit (EXIT_FAILURE);
    }

    system("PAUSE");
    return 0;
}


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


int Password (string answer, string pass)
{

}
Wannabe programador autodidacta de c++
"Usain Bolt comenzó gateando."

engel lex

Citarerror: cannot convert 'std::string {aka std::basic_string<char>}' to 'int' in return

no puede convertir un string en un int

Código (cpp) [Seleccionar]
int PassMenu (string answer, int atmps)//ES EL DISEÑO DE CUANDO TE PIDE LA CONTRASEÑA
{
    cout<<endl<<endl<<"Attempts: "<<(atmps-1)<<endl<<"PASS: ";
    cin>>answer;
    return answer;
}


solo te pregunto... que tipo es la funcion? que estás retornando? como está declarado lo que retornas?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

cNoob

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)
Wannabe programador autodidacta de c++
"Usain Bolt comenzó gateando."

engel lex

la que quieras... si quieres retornar string, de tipo string, si quieres retornar char* de tipo char*
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.