Innanzitutto, come al solito, vi ringrazio per le risposte.
Ora rispondo a Pablo (sempre gentile con la sua partecipazione)..
Oramai sono nell' effetto domino...
Se inserisco qualcosa di nuovo che mi risolve un problema, automaticamente se ne crea uno nuovo!
Allora ho provato a inserire nel codice della funzione legginumero la linea da te consigliatami while(cin.get()!='\n');
ti posto il nuovo codice della funzione:
codice:
float legginumero(){
char buffer2[100];
float valore;
int numeri=0;
int punti=0;
int altri_caratteri;
int valido;
int i;
do{
valido=1;
altri_caratteri=0;
while(cin.get()!='\n');
cin.getline(buffer2,99);
for(i=0;i<strlen(buffer2);i++)
{
if(buffer2[i]>='0'&&buffer2[i]<='9')
numeri=1;
if(buffer2[i]=='.')
punti++;
if(!(buffer2[i]>='0'&&buffer2[i]<='9')&&buffer2[i]!='.')
altri_caratteri++;
}
if(numeri&&punti<=1&&!altri_caratteri)
valido=1;
else
valido=0;
if(!valido)
cout<<" Valore non consentito"<<endl;
}while(!valido);
valore=atof(buffer2);
return valore;
}
L' output ora è questo:
Inserisci il primo vertice :
e aspetta l' immissione del codice, come deve fare.
Poi però appare
Inserisci il secondo vertice:
aspetta che si inserisca un valore, poi dopo che si preme invio si deve ridigitare il numero perché la prima immissione non la legge...
Se invece si immette un numero e si preme invio due volte legge solo il secondo invio (dicendo giustamente valore non consentito), a conferma che il primo valore digitato non lo legge....
Cosa caspita succede ora????
VVoVe:
VVoVe:
VVoVe: