質問

こんにちは私は次のコードに問題があります:

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

TextFileには次のものがあります

1

2

3

0

1

0

1

0

私がこのプログラミングにしたいのは、それが行う2番目の数字を読むことから始めることから始まり、次に読んで、次の1つをスキップするなどをスキップします。 2回、次の番号を3回、次の番号を3回読みます。したがって、上記のテキストファイルから受け取った出力は1112223330です。

誰かが私を助けてくれませんか!ありがとうございました!

役に立ちましたか?

解決

これは、ラインがラインフィード(実際にはCRとLF)で区切られているためです。また、 file >> s 主要な空白をスキップするので、あなたは

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

これらすべてが生じます s 1であること。

同じことが2、3などで繰り返されます。

yout seekp()を忘れて、単に使用してください

while (file.good()) {
 file >> s; // skip line
 if (!file.good()) break;
 file >> s;
 cout << s;
 stats[s]++;
} 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top