Se non sei tenuto a usare il C++ puoi provare col C. Io farei così...
#include <stdio.h>
#include <string.h>
/*==============================================================================
Riceve il puntatore a un buffer e la capacita' massima del buffer stesso.
Attende l'inserimento da console di una stringa.
Elimina l'eventuale '\n' in coda alla stringa immessa. Se non lo trova,
significa che e' stata inserita una stringa troppo lunga (in quel caso occorre
anche esaurire i caratteri "pendenti" nello stream stdin, e la stringa nel
buffer risultera' troncata entro il limite massimo richiesto).
Se tutto va a dovere, restituisce la lunghezza della stringa rilevata.
In caso d'errore restituisce 0.
P.S. il tipo size_t equivale a un unsigned int.
==============================================================================*/
size_t chiedi_stringa( char *buff, size_t dim ) {
if( fgets(buff,dim,stdin) ) {
size_t l = strlen(buff);
if( buff[l-1] == '\n' )
buff[--l] = '\0';
else while( getchar()!='\n' );
return l;
}
return 0;
}
int main(){
char a[100][20];
int i = 0;
memset( a, 0, 100*20 ); // azzera a[][]; lo uso più che altro per sfizio
for( i=0; i<100; i++ ) {
printf( "inserisci la parola n. %d: ", i+1 );
chiedi_stringa( a[i], 20 ); // bisognerebbe verificare l'esito...
if( strcmp(a[i],"fine") == 0 ) {
memset( a[i], 0, 20 ); // se "fine" non ti serve, azzera a[i]
break;
}
}
return 0;
}
Non prendere per oro colato quel che scrivo, però. Leggi la firma qui sotto.