Newsgroup: it.comp.lang.c++
Titolo: Ancora una richiesta d'aiuto e ringraziamenti "de core" :)

Ciao a tutti.
Innanzitutto un enorme ringraziamento a Mauro Casino, Franco Torrini,
Leopoldo Ghielmetti ed Enrico Maria Giordano. Grazie a voi ho risolto
il problema. Vi amero' per sempre (ok, sto esagerando :).
Sempre a riguardo del mio master mind sperimentale (finito il quale
passero' allo studio dei puntatori cercando di non scassarvi troppo),
vi chiedo un altro piccolo aiuto:
vorrei che la riga generata da questo frammento di codice
      for (i=0; i<h; i++)
      {
         cout << "Inserisci il " << (i+1) << "ø numero della
combinazione: ";
         cin >> tentati[i];
         if (tentati[i]>9)
         {
            cout << "Devi inserire un numero compreso tra 0 e 9!\n";
            i--; continue;
         }
      }
non lasciasse traccia su video dopo l'inserimento cin di tentati[i],
ma non so proprio come fare.
La seconda e' che vorrei che l'inserimento di un char al posto di un
int nei vari cin numerici richiesti dal programma non lo mandasse in
crash ma semplicemente generasse un messaggio di errore e facesse un
passo indietro.
Grazie a prescindere. :)
P.S.
Scusate per le continue richieste di aiuto, se saprete indicarmi delle
FAQ esaustive vi disturbero' molto meno. Il mio libro e' davvero molto
(forse troppo) parco di esempi, per quanto io sia abituato ad
arrangiarmi. Ciao.

 se saprete indicarmi delle FAQ esaustive vi disturbero' molto meno.
Ci stiamo lavorando. :-)
EMG

Ci stiamo lavorando. :-)
Resto in attesa e buon lavoro :)
Ciao e grazie. Ampex

 if (token == "0")  // qui sta il problema!!!!
Non puoi confrontare due stringhe in quel modo. Ti serve la funzione
strcmp(). Se invece il tuo scopo era quello di confrontare due caratteri
allora hai sbagliato il delimitatore (oltre ad aver dimenticato l'indice
dell'array o l'operatore di dereferenziazione). Devi usare gli apici
singoli.
Ricapitolando:
- Confronto tra stringhe
  if ( strcmp( token, "0" ) == 0 ) ... // sono uguali
- Confronto tra caratteri
  if ( token[ 0 ] == '0' ) ... // sono uguali
   oppure
  if ( *token == '0' ) ... // sono uguali
EMG

 Ciao e grazie. Ampex
se vuoi verificare che la stringa contenga solo delle cifre da 0 a 9 non sarebbe
meglio che usassi qualcosa come :
#include <iostream>
#include <cstdlib>
int main(void)
{
  for (;;)
    {
      char* str;
 
      cout << "Scrivere una frase: ";
      cin.gets(&str);
 
      for (unsigned int i = 0; str[i]; i++)
	if (str[i] == ' ')
	  {
	    str[i] = '\0';
	    break;
	  }
	else if ((str[i] < '0') || (str[i] > '9'))
	  {
	    str[0] = '\0';
	    break;
	  }
 
      if (str[0])
	{
	  int l = atoi(str);
 
	  cout << l << '\n';
 
	  delete[] str;
 
	  return 0;
	}
 
      delete[] str;
    }
}
L'ho scritta rapidamente, quindi si potrà certamente fare meglio, comunque segui
sempre il principio numero uno "evitare i goto come la peste". Usarli solo se
sono indispensabili, e in questo caso non lo erano perchè ho fatto tutta la
routine senza usarne uno.
ciao, Leo
-- 
Change L.G With my 
firstname.name
 in the reply address !
    .--.     
   |o_o |    Linux: Power for nothing and bits for free
   |:_/ |    
  //   \ \   
 (|     | )  
/'\_   _/`\                           Leopoldo Ghielmetti, EPFL-DMA ROSE
\___)=(___/

>          if (token == "0")  // qui sta il problema!!!!
Il problema che il confronto tra stringhe non si fa cosi'.
Devi usare if (strcmp(token, "0") == 0)
Marco

Ciao a tutti.
Ancora una volta grazie, ho capito qual'era il problema.
Vi do un ottimo sistema per eliminarmi: :))) :
sapreste consigliarmi un buon testo completo di esempi ed esercizi?
Ciao e grazie.