做..循环/文本文件/操作问题

时间:2011-01-26 21:42:28

标签: arraylist text-files fseek do-while

您好我的以下代码有问题:

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

Textfile具有以下内容: 0

1

2

3

0

1

0

1

0

我想要这个编程要做的是从读它的第二个数字开始,然后跳过一个读取,跳过一个读取下一个等等。它正在做的是读取第二个数字,这是好的,然后读取再次2次,然后读取下一个数字3次,然后读3次。所以我从上面的文本文件中收到的输出是 1112223330。

任何人都可以帮助我! 谢谢!

1 个答案:

答案 0 :(得分:0)

那是因为你的线条被换行符分开(实际上是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]++;
}