Wartość zmiennej wypisywana po stringu

0

Cześć. Mam pewien problemik, mianowicie muszę wypisać zawartość zmiennej podając jej nazwę jako string.

void print(string Variable)
{
	cout << "# " << Variable << " - " << Variable " ;";
}

I to drugie variable chciałbym zamienić tak, aby wyświetlona została zawartość zmiennej podanej w stringu, tzn. dla:

void print("abcd")
{
	cout << "# " << "abcd" << " - " << zawartość zmiennej int abcd " ;";
}
0

Ruszyć google tak ciężko? Na pierwsze zadanie szuka się odpowiedzi w 10 sekund

1

Rozwiązania takiego jak sobie wyobrażasz to raczej nie można zrobić, ale możesz osiągnąć coś podobnego za pomocą mapy.

map<string, int> foo;
foo["abcd"] = 1;
foo["poopajeza"] = -1232;

string s = "abcd";
cout << s << " - " << foo[s];
1

Może nie rozumiem, ale

#include <iostream>
#define print(x) cout<<#x<<' '<<x

using namespace std;

int main () {
    int blbelbeble;
    string twonek_co_ty_wygadujesz;
    print(blbelbeble);
    cout << '\n';
    print(twonek_co_ty_wygadujesz);
    return 0;
}
1

edit: zdaje się, że sposób @up jest jedyny sensowny chociażby z tego powodu, że po kompilacji nazwy zmiennych nie istnieją (albo nie istnieją takie jak sobie nazwałeś) więc trzeba robić to przed kompilacją. A jak wiemy preprocesor właśnie tak działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1