Ottimo suggerimento Dark867 funziona quasi.... mi spiego.... mi fa inserire il titolo e l'artista con gli spazi e mi da l'ok ma quando vado a visualizzare l'elenco dei brani inseriti alla voce "Titolo" non appare nulla mentre ad Artista si (nome e cognome con spazi).... sembra come se Titolo non me lo aggiorna....

Non capisco...

Vi posto il codice con la funzione Visualizza() cosi lo testate...

codice:
#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

struct brano
{
string titolo;
string artista;
string genere;
brano* next;
};

brano* testa;
int attuali = 0;

//Prototipi di funzioni
void  Titolo();
void  Menu();
void  Aggiungi (brano* &);
void  Visualizza(brano*);
void  Ordina();
void  Trova();
void  Elimina();
void  SvuotaLista();

//funzione principale
int main()
{

Titolo ();	
int risp;	
brano* testa = NULL;

do {
  do {
Menu ();
cout <<"\n\nDigita la tua scelta: ";
cin >> risp;
} while (risp <1 || risp > 6);
switch (risp)
{
case 1:
     Aggiungi(testa);
     break;
case 2:
     Visualizza(testa);
	 break;
case 3:
     Ordina;
	 break;
case 4:
     Trova;
	 break;
case 5:
     Elimina;
	 break;
case 6:
cout <<"\nArrivederci! :) \n\n";
	 break;
}
} while (risp != 6);
return 0;
}

// funzioni in dettaglio

void Titolo ()
{
cout <<"\n\t LettoreMusicale.cpp   di   Silvia D'Ercole e Vito Montesano    \n";
cout <<"\n\t Esame di: ALGORITMI E PROGRAMMAZIONE (prof. Vittorio Moriggia) \n";
cout <<"\n\t                == GESTIONE DI FILE MUSICALI ==                 \n";
 
} // fine Titolo

void Menu()
{
cout <<"\n\t Contatti attualmente presenti: " << attuali << endl;	
cout <<"\n\n\t            == Menu'==           \n";
cout <<"\n\t [1]: Aggiungi un nuovo brano      \n";
cout <<"\n\t [2]: Visualizza i brani inseriti  \n";
cout <<"\n\t [3]: Ordina brani                 \n";
cout <<"\n\t [4]: Trova un brano               \n";
cout <<"\n\t [5]: Elimina brano                \n";
cout <<"\n\t [6]: Esci\n";
} // fine Menu

void Aggiungi (brano* &testa)
{
	
string TitoloBrano;
string ArtistaBrano;
string GenereBrano;

brano* nuovo;
nuovo = new brano;

cout <<"\n\n == NUOVO ELEMENTO == \n";

cout <<"\nTitolo brano:   \t";
cin >> TitoloBrano;
getline(cin, TitoloBrano, '\n');
cout <<"\nArtista:        \t";
getline (cin, ArtistaBrano, '\n');
cout <<"\nGenere:         \t";
cin >> GenereBrano;

nuovo->titolo == TitoloBrano;
nuovo->artista = ArtistaBrano;
nuovo->genere = GenereBrano;
nuovo->next = testa;
testa = nuovo;
attuali ++;
cout <<"\n == Brano Inserito! == \n\n";
system ("pause");
system ("cls");
} // fine Aggiungi

void Visualizza (brano* testa)
{
if (!testa)
{
cout <<" \n\n LISTA VUOTA!!! \n\n";
system ("pause");
system ("cls");
return;}	
	
brano* prossimo;	
prossimo = testa;

  cout <<"\n\n        == ELENCO BRANI == \n\n";
  
do { 		
  cout <<"\n\n  Titolo:  " << prossimo->titolo  << " \n";
  cout <<"\n\n  Artista: " << prossimo->artista << " \n";
  cout <<"\n\n  Genere:  " << prossimo->genere  << " \n";
  cout <<"\n _________________________________" << " \n\n";
  
  prossimo = prossimo->next;
} while (prossimo != NULL);

system ("pause");
system ("cls");
} // fine Visualizza