Fare .. While Loop / Textfile / Funzionamento PROBLEMA
-
25-10-2019 - |
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!
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]++;
}