Domanda

Ciao ho un problema con il seguente codice:

 int skp = 1;
    do{
    file.seekp(skp);
    file>>s;
    cout<<s;
    stats[s]++;
    skp++;
    skp++;
    }while(skp <= 10);

Il Textfile ha la seguente: 0

1

2

3

0

1

0

1

0

Quello che voglio questa programmazione fare è iniziare dalla lettura del secondo numero, che lo fa, allora saltare una lettura successiva, salti uno leggere il prossimo ecc ecc quello che sta facendo è leggere il secondo numero che è buono, quindi legge nuovamente per 2 volte, quindi leggere il numero successivo per 3 volte e il successivo per 3 volte. Così l'uscita che ricevo da quanto sopra file di testo è 1.112.223,33 mila.

Può uno Help me please! Grazie!

È stato utile?

Soluzione

Questo perché le linee sono separate da alimentazioni di linea (in realtà CR e LF). Inoltre, file >> s salterà spazi bianchi, così si finisce con

 <CR><LF>1 
 <LF>1
 1

Tutto ciò risultato s essere 1.

Lo stesso si ripete per 2, 3 e così via.

Forget seekp yout () e semplicemente usare

while (file.good()) {
 file >> s; // skip line
 if (!file.good()) break;
 file >> s;
 cout << s;
 stats[s]++;
} 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top