Per quanto riguarda il cosa sto facendo...

è un programmino per l'analisi di specifici ritardi per mio uso personale appunto per il lotto.
In sostanza vorrei analizzare tutte le possibili quartine (2.555.190) (es.1,2,3,4) confrontandole con tutte le estrazioni di una specifica ruota (che sono ca 4.000) (es.10,11,20,23,43) rilevandone per ogni quartina i ritardi x A,T e Q.

Però dopo essere rimasto positivamente impressionato dalla rapidità di immagazzinamento nella memoria con (char) sono di nuovo fermo per quanto riguarda la rapidità del calcolo allorchè con strtok o atoi separo l'insieme dei caratteri trovati servendomi del carattere separatore virgola...

In quanto è vero che a questo punto ho i numeri voluti... ma non so come gestirli se non reinserendoli in un vector o array e riperdendo così la rapidità del calcolo iniziale...

codice:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
#include <iomanip>
#include <cstdio>
#include <new>
#include <stdio.h>
#include <string.h>

using namespace std;
int main (int argc, char *argv[]) {
string s;
vector <string> numeri;
int n=0;
//prendo dal file...
FILE *file; 
char ch, *buff, FileName[256]="prova2.txt";
int indice, fileDim = 0;
if(( file = fopen( FileName, "rb")) != NULL)
{
		// Si posiziona alla fine del file
		fseek(file, 0, SEEK_END);
		// Legge la posizione attuale
		fileDim = ftell(file);
		// Alloca la dimensione del buffer
		buff = (char*) malloc(sizeof(char) * fileDim+1);
		printf("Dimensione del file %s = %d\n", FileName, fileDim);
		cin.get();
		// Mi riporto all'inizio del file
		fseek(file, 0, SEEK_SET);
		// Copio tutto il contenuto del file nel buffer
		fread(buff, fileDim, 1, file);
		
		for (int i=0; i<fileDim; i++) {
            
            /*
            cout << "carattere: ";
            cout << buff[i];
            cin.get();
            */
            
            s +=buff[i];
            
            //cout << s;
            //cout << "\n";
            
            if (buff[i]==0x0A)  {
                                
              n++;                  
             }                    
            }
            }

//------------------

cout << "\n";
cout << "stringa: ";
cout << "\n";
cout << s;
cout << "\n";

//cin.get();



char *ascnum = strtok((char *)s.c_str(), ",");

//{
  //char str[] = s;
  
  cout << "\n\n";
  cout << "quartine visualizzate: ";
  cout << n;
  cout << "\n\n";
  
  cin.get();
  
  cout << "\n cosa stampa adesso? \n";
  
  cin.get();
  
  cout << "caricamento array in progress...";

  while (ascnum != NULL)
  {
    
    //cout << "\n";
    //cout << ascnum;
    
    cout << "\n";


// qui inserisco ogni NUMERO nel vector per poterlo gestire
// poi... ma così facendo perdo la velocità... del calcolo iniziale...
// mi piacerebbe... rimanere con i numeri distinti... in memoria
// e poterli gestire direttamente da lì...  

    numeri.push_back(ascnum); 

    
    
    
    //printf ("\n%s\n",pch);
    ascnum = strtok (NULL, ",");
  }

  //return 0;
  //cin.get();
//}

cout << "arriva qui????";
cin.get();

cout << "stampa qualcosa? ovvero tutti i 10 milioni di numeri memorizzati?";
cout << "\n";
cout << "misura di numeri: ";

cout << numeri.size(); 
//Anche questo dato non torna... invece di essere.. 2.555.190 (righe rilevate) x 5 (numeri x
// ogni riga) = 12.775990 me ne tornano solo... 7665571 

cout << "\n";

cin.get();

cout << "valori: ";
//cout << numeri[3];
cout << "\n";

for (int i=0; i<numeri.size();i++) {

//cout << numeri[i];
cin.get();

 }
 
 cout << "\n\n";
 cout << "Sono stati raccolti esattamente... : ";
 cout << numeri.size();
 cout << " numeri";

}
Grazie comunque oregon e complimenti per la tua grandissima esperienza in questo campo.