#include <iostream>
#include <cstdio>
using namespace std;
struct juegos {
char nombrejugador[100]; //debes reservar espacio para nombre ya que no se trata de una simple letra y si de una cadena de caracteres.
long int saldojugador;
}; //<-aqui has creado un objeto del tipo juegos llamado jugador. si fuera un int seria: int Jugador; ...Pero recuerde que es: juego Jugador; ( Jugador es una variable(objeto) del tipo juego ;) )
struct juegos Jugador;
void solicitarJugador ( struct juegos &unJugador ) {
cout << "\nponer saldo";
cin >> unJugador.saldojugador;
cin.sync(); // se llama para 'vaciar' el buffer
cout << "\nponer nombre";
//Si vamos usar c_string debemos tomar el nombre con funciones para cadenas de caracter del lenguaje C. Algunas
//de ellas pueden ser getline() fgets() entre otras, pero este scanf cuida para que no entre
//bazura en el buffer y cuida ademas el tamaño de la cadena para que no pase de 100 incluindo el \0 (NULO) que indica el fin de la cadena.
scanf ("%99[^\n]%*c",unJugador.nombrejugador);
}
int main () {
//Como ya creamos 'Jugador' antes solo pasamos a la variable. Se conectara con 'unJugador' y todo lo que le pase a 'unJugador' en realidad estará pasando a 'Jugador'.
solicitarJugador(Jugador); // <-Como es una referencia se pasa como de una variable normal se tratará.
//los cambios echos a 'unJugador' han sido aplicados a 'Jugador', solo hay que imprimir.
cout << "\nsu saldo es " << Jugador.saldojugador << "su nombre es " << Jugador.nombrejugador;
}