Generazione casuale di frasi con l'utilizzo dei file

di Anonimizzato28827 il
3 risposte
Il programma dovrebbe trasferire una lista di parole da un file .csv ad un array. Dopodichè stampare casualmente delle "frasi" sul terminale e in un file .txt il seguente codice è di persè è giusto solo che non stampa i valori. Provando a sostituire la variabile nn con la i del for li stampa. non capisco perchè?
#include <iostream>
#include <fstream>
#include <cstdlib>    
#include <ctime>
using namespace std;
const int m = 1000; 

int main(){
long n = 0,  numero, i, x, nn;
string firstname, parole[m];
ifstream ip("ess.csv");
ofstream sc("eee.txt");
while(ip.good()){
  getline(ip,firstname,',');
  parole[n] = firstname;
n++;
}
cout << "How long do you want the sentence? ";
cin >> x;
system("cls");
srand(time(NULL));
for(i = 1; i < m; i++);{
	nn = rand()%(60);
    sc << parole[nn] << " ";
    cout << parole[i] << " ";
 }
ip.close();
}

3 Risposte

  • Il ciclo for finale ha parecchi errori banali ...
    
    	for (i = 1; i <= x; i++) {
    		nn = rand() % (n);
    		sc << parole[nn] << " ";
    		cout << parole[nn] << " ";
    	}
    
    P.S. Da dove hai copiato quel codice, dato che non l'hai scritto tu?
  • No l'ho scritto io, mi sono accorto di aver postato una versione vecchia del codice, comunque gli errori che hai trovato erano voluti per capire dove si bloccasse il programma, perché con i come coordinata stampa con l'altra variabile no e ciò non ha alcun senso, è scritto in inglese perché ho chiesto su stackoverflow ma non hanno saputo rispondere per ora
    anche così non funziona...
    const int m = 60454; 
    
    int main(){
    long n = 0,  numero, i, x, nn = 0;
    string firstname, parole[m];
    ifstream ip("data.csv");
    ofstream sc("eee.txt");
    while(ip.good()){
      getline(ip,firstname,',');
      parole[n] = firstname;
    n++;
    }
    cout << "How long do you want the sentence? ";
    cin >> x;
    system("cls");
    srand(time(NULL));
    for(i = 0; i < x; i++){
    	nn = rand()%(m);
        sc << parole[nn] << " ";
     }
    ip.close();
    }
  • Io ti ho scritto come deve essere. Lo hai letto il mio post con attenzione?n
Devi accedere o registrarti per scrivere nel forum
3 risposte