您好我的以下代码有问题:
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。
任何人都可以帮助我! 谢谢!
答案 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]++;
}