Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

std::map , termianl, losowe liczby

Ostatnio zmodyfikowano 2016-12-14 19:39
Autor Wiadomość
Wasyl
Temat założony przez niniejszego użytkownika
std::map , termianl, losowe liczby
» 2016-12-14 19:18:24
Witam, mam problem z programem konsolowym.
Mianowicie po wpisaniu komendy np.
"damian"
 wyskakuje mi
"damian4774208"
Jak zmienić tak aby nie było tych losowych liczb ? ("4774208")

Oto kod:
C/C++
#include <iostream>
#include <functional>
#include <map>

using namespace std;

int darek()
{
    cout << "darek";
}
int damian()
{
    cout << "damian";
}
int dawid()
{
    cout << "dawid";
}

int main()
{
    string x;
    map < string, function < int() >> komenda;
    komenda[ "darek" ] = darek;
    komenda[ "damian" ] = damian;
    komenda[ "dawid" ] = dawid;
   
    cout << "Wpisz komende: /";
    cin >> x;
   
    cout << komenda[ x ]();
   
    return 0;
}
 
P-154928
michal11
» 2016-12-14 19:25:37
a po co zwracasz inta ze swoich funkcji?
P-154929
Wasyl
Temat założony przez niniejszego użytkownika
» 2016-12-14 19:27:55
bo void nie zadziała z map
P-154930
mokrowski
» 2016-12-14 19:32:48
No popatrz, a "u mnie działa" :-)
C/C++
#include <iostream>
#include <functional>
#include <string>
#include <map>

using namespace std;

void darek()
{
    cout << "darek";
}
void damian()
{
    cout << "damian";
}
void dawid()
{
    cout << "dawid";
}

int main()
{
    string x;
    map < string, function < void( void ) >> komenda;
    komenda[ "darek" ] = darek;
    komenda[ "damian" ] = damian;
    komenda[ "dawid" ] = dawid;
   
    cout << "Wpisz komende: /";
    cin >> x;
   
    komenda[ x ]();
   
    return 0;
}
P-154931
Wasyl
Temat założony przez niniejszego użytkownika
» 2016-12-14 19:35:31
osz ty...
Dziekuję i prosze jeszcze o jedno... "skąd wiedziałeś" ? tzn gdzie mam poszukać to co zrobiłeś ? problem leżał w map ? czy gdzie ?
(nie chce dostać kod i tyle, chce wiedzieć jak to zrobić\działa sam)


+rep :)
P-154932
michal11
» 2016-12-14 19:38:19
Problem był w tym, że wywoływałeś funkcje która zwracała inta i wypisywałeś tą zwróconą wartość, a że nigdzie nie dałeś returna w swoich funkcjach to dostawałeś śmieci (swoją droga kompiler powinien to wychwycić i przynajmniej dać warninga).

Sprawdź lepiej co to jest function to będziesz wiedział jak działa twój i mokrowskiego kod.
P-154933
Wasyl
Temat założony przez niniejszego użytkownika
» 2016-12-14 19:39:58
Wielkie dzięki za pomoc chopy ;)

P-154934
« 1 »
  Strona 1 z 1