30/05/10 16:13
XBarboX
Salve,
forse sto per fare una domanda banale ma non riesco a capire perchè questo sorgente non funziona.
Praticamente sto faceondo un programma che trova i numeri i primi e gli stampa si PIU file testo in modo da evitare di creare file testo enormi e difficili da gestire.
Allora ho pensato di cambiare file testo ogni 10000 numeri primi che trova.
Io per far ciò ho scritto questo:
Proaticamente il file 1 lo crea correttamente con 10000 numeri primi mentre i file 2,3,4,5.. ecc li genera ma non ci scrive nulla.
Posto il sorgente completo in modo da poter capire meglio il procedimento:
forse sto per fare una domanda banale ma non riesco a capire perchè questo sorgente non funziona.
Praticamente sto faceondo un programma che trova i numeri i primi e gli stampa si PIU file testo in modo da evitare di creare file testo enormi e difficili da gestire.
Allora ho pensato di cambiare file testo ogni 10000 numeri primi che trova.
Io per far ciò ho scritto questo:
if(c>=10000){ //c è il contatore dei numeri primi trovati n++; //Aumenta di uno il nome del file, in modo da ottenere file 1,2,3,4,5,6...ecc fout.close();//chiudo fout char buf[5]; itoa(n, buf, 10);//converto n in vettore char ofstream fout(buf);//cambio stream <--- QUI E' L'errore }
Proaticamente il file 1 lo crea correttamente con 10000 numeri primi mentre i file 2,3,4,5.. ecc li genera ma non ci scrive nulla.
Posto il sorgente completo in modo da poter capire meglio il procedimento:
int main(){ long long int x = 0; //numero da controllare se primo long long int c = 0; //contatore numeri primi trovati long long int n = 1; //file ofstream fout("1"); for(;;){ x++; if(Primo(x) == true){c++; fout<<x<<endl;} if(c>=1000){ c=0; n++; fout.close(); char buf[5]; itoa(n, buf, 10); ofstream fout(buf); } } return 0; }
aaa