Problema con il printing di una stringa di caratteri

di Anonimizzato25349 il
8 risposte
Ciao sono un novizio nella programmazione, da circa un'annetto ho cominciato a studiare e praticare il c++ con piccole cose...
Oggi stavo cercando di creare un programmino che printasse delle lettere a caso da un'array(codice in seguito)

using namespace std;
#include <iostream> 
#include <Windows.h>
char Alphabet[22] = "ABCDEFGHILMNOPQRSTUVZ";
//array alfabeto 

//inizio 
int main() 
{

	//creo un loop che printa una lettera casuale dall'array 
int a = 0;
	while (true) 
	{
		a += 1;	
	cout << Alphabet[rand() % a];
//delay per rallentare un pò il printing dei char
Sleep(1);
	}


cin >> new char;
}

ma il risultato non è quello aspettato perché vengono printati caratteri non contenuti... potreste spiegarmi perché e correggere l'errore che faccio se possibile?

8 Risposte

  • Ma il loop non si ferma mai? E la variabile a aumenta sempre? Così esci dal limite del vettore, non ti sembra ovvio?
  • Seguendo quel che dice Oregon, prova a liberarti della variabile a e a usare rand()%21 (21 è la quantità delle lettere nell'array).

    A proposito: hai dimenticato di inizializzare la sequenza pseudocasuale con srand().

    http://www.cplusplus.com/reference/cstdlib/srand
  • Sarebbe stato meglio che ci fosse arrivato da solo Aldo... e solo arrivandoci da solo chi programma fa vera esperienza. Ma te lo ripeto già troppe volte...
  • Tra un po' te ne vieni fuori che anche scrivere "ciao" è "pappa pronta".
    Aspetta... ci provo.
  • Ciao!
  • Suvvia, lasciamo stare l'asilo mariuccia ...

    Intendo dire che in un programma in cui il nucleo della questione è

    rand()%21

    è poco utile proporlo senza aver dato neanche un po' di tempo all'utente di riflettere e riuscire da solo ...
  • Va bene, grazie per la precisazione. Vado a fare merenda.
  • Buona merenda. Tranquillo non lo dirò alla maestra
Devi accedere o registrarti per scrivere nel forum
8 risposte