Your problem is most likely the same that chris ran into:
totalRead++; //New item in the arrayStruct
...
cin >> list[totalRead].gameName;
You increment totalRead prior to using it. Now, if totalRead == 0 means "There is 1 game.", that's fine. However, I suspect totalRead == 0 means "There are no games." See how [chris]'s output here is actually missing the last game input.
You most likely see gibberish, because you start with n games (0 to n - 1), skip game n, parse new game into array n + 1 and print games 0 to n, i.e. games 0 to n - 1 plus one uninitialized entry at n.
at initialization after totalRead++ after AddGameData
[0] Game_0 [0] Game_0 [0] Game_0 \
... ... ... |- only these
[n] ?!?!?! <--- [n] ?!?!?! [n] ?!?!?! / are printed
[n+1] ?!?!?! [n+1] ?!?!?! <--- [n+1] Game_n <---