Test Foro de elhacker.net SMF 2.1

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 (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)
{

}
Título: Re: Problemas con return
Publicado por: engel lex en 19 Junio 2016, 23:30 PM
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?
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*