Question

Salut, j'ai un problème avec le code suivant:

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

Le Textfile a ce qui suit: 0

1

2

3

0

1

0

1

0

Ce que je veux que cette programmation à faire est de commencer la lecture du deuxième numéro qui il le fait, puis sauter une lecture suivante, sautez une lecture de la prochaine etc etc ce qu'il fait est lu le deuxième numéro qui est bon, puis lit encore 2 fois, puis lire le numéro suivant pour 3 fois et la suivante pour 3 fois. Ainsi, la sortie que je reçois de l'textfile ci-dessus est 1112223330.

une aide peut me s'il vous plaît! Merci!

Était-ce utile?

La solution

C'est parce que vos lignes sont séparées par des sauts de ligne (en fait CR et LF). En outre, file >> s sautera espace blanc, si vous vous retrouvez avec

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

Tout ce qui résulte en s étant 1.

La même chose est répétée pour 2, 3 et ainsi de suite.

Forget yout seekp () et utilisez simplement

while (file.good()) {
 file >> s; // skip line
 if (!file.good()) break;
 file >> s;
 cout << s;
 stats[s]++;
} 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top