Ciao a tutti!

Avrei un piccolo broblema sul cin di un esercizio tratto dal libro di Lippman.

Tale esercizio propone una nuova implementazione della classe String.

Dato l'istream della classe così fatto:

inline istream& operator>>( istream &io, String &s )
{
const int limit_string_size = 4096;
char inBuf[ limit_string_size];

io >> inBuf;

s = inBuf;
return io;
}

e, dato il seguente codice nel main:

int counter;
String buf;
while(cin >> buf)
++counter;

cout << counter << endl

Quando vado ad eseguire il programma e inserisco un pezzo di testo e premo invio, non termina l'esecuzione del while, posso premere invio all'infinito senza che il programma termini, qualcuno sa quindi come poter far capire al programma che l'invio equivale a EOF?

Grazie mille a tutti