Innanzitutto grazie mille per la risposta!
Ho seguito il tuo consiglio e ho risolto il problema!
Ma adesso ho provato a utilizzare lo stesso criterio per altri casi simili, ti spiego:
Una volta immesso il numero di vertici del grafo, nel menu c'è l' opzione di inserimento di un nuovo arco. Si inserisce il primo nodo, si inserisce il secondo nodo e poi si inserisce il peso dell' arco.
Se ci sono 5 vertici essi sono nominati come 0 1 2 3 4.
Quindi se si vuole un arco che collega i vertici 0 e 4 si immetteranno i valori 0 e 4.
Quindi avevo bisogno dello stesso controllo del tipo per evitare l' immissione di caratteri.
Però utilizzando il tuo suggerimento ho qualcosa di questo tipo:
immettere primo vertice: //qui salta e va direttamente a
immettere secondo vertice:

Come posso fare??
Ti posto il semplice codice in questione!
codice:
          int v1;
          int v2;
          int w;
          cout << " Inserisci il primo vertice: "; //ho provato a utilizzare 
                                                            //cout<<"inserisci un  numero"<<endl;
                                                            //cin.getline(buffer,10);
                                                            //v1=atol(buffer); ma non funge
          cin >> v1;
          cout << endl;           
          cout << " Inserisci il secondo vertice: ";
          cin >> v2;
          cout << endl;
          cout << " Inserisci il peso dell'arco " << "(" << v1 << "," << v2 << "): ";
          cin >> w;
          cout << "\n";
          G.inserisci_arco(v1, v2, w);

Spero tu possa darmi una mano!