Do .. Во время Loop / Textfile / Operation Проблема - PullRequest
0 голосов
/ 27 января 2011

Привет У меня проблема со следующим кодом:

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

Текстовый файл имеет следующее: 0

1

2

3

0

1

0

1

0

Я хочу, чтобы это программирование запустилосьпосле прочтения второго числа, которое он делает, затем пропускает одно чтение следующего, пропускает одно чтение следующего и т. д. и т. д. он выполняет чтение второго полезного числа, затем снова читает его 2 раза, затем читает следующее число для3 раза, а следующий 3 раза.Таким образом, вывод, который я получаю из вышеуказанного текстового файла, - 1112223330.

Может ли кто-нибудь помочь мне, пожалуйста!Спасибо!

1 Ответ

0 голосов
/ 27 января 2011

Это потому, что ваши строки разделены переводами строк (на самом деле CR и LF).Кроме того, file >> s пропустит начальный пробел, так что вы получите

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

Все это приводит к тому, что s равно 1.

То же самое повторяется для 2, 3и т. д.

Забудьте о себе seekp () и просто используйте

while (file.good()) {
 file >> s; // skip line
 if (!file.good()) break;
 file >> s;
 cout << s;
 stats[s]++;
} 
...