Adventure Game (text based) in C++
typedef struct weapons {
    int dagger = 2, sword = 3, axe = 4, mace = 5, bow = 3, arrows = 2;
} weapons;


The typedef struct X { ... } X; pattern is a C-ism; in C++ you don't need the typedef and can just write struct X { ... };.

You're creating a struct type named weapons with a bunch of per-instance member variables. This is almost certainly not what you meant to do. Probably what you meant was

enum class Weapon {
    dagger = 2,
    sword = 3,
    axe = 4,
    mace = 5,
};


so that you could later write

Weapon w = Weapon::sword;
if (w == Weapon::axe) { ... }


What you actually wrote, unfortunately, is simply nonsense.



character characterCreation(string name);


Look up the C++ notion of "constructors" (and also destructors). What you have here would normally be spelled something like

Character::Character(const std::string&amp; name) {
    this-&gt;name = name;
    this-&gt;strength = rand() % 5 + 5;
}


and so on.

Also consider writing yourself a helper function

int randint(int lo, int hi) {
    return rand() % (hi - lo) + lo;
}


so that you can write simply

    this-&gt;strength = randint(5, 10);


Ninety percent of what we call "programming" is just finding sources of repetition and eliminating them.