文字列ストリームから文字を削除し、データを追加する 質問する

文字列ストリームから文字を削除し、データを追加する 質問する

私のコードには、文字列ストリームに「数値」のようなものを追加するループがあります。ループが終了したら、',' を抽出して '}' を追加し、ループが繰り返される場合は '{' を追加する必要があります。

ignore() を使用して ',' を削除できると思いましたが、うまくいきませんでした。私が説明したことを実行する方法をご存知ですか?

例:

douCoh << '{';
for(unsigned int i=0;i<dataSize;i++)
  if(v[i].test) douCoh << i+1 << ',';
douCoh.get(); douCoh << '}';

ベストアンサー1

stringstreamを使用して、 をシークして 1 文字戻ることができますstringstream::seekp。最後の文字は削除されず、書き込みヘッドが移動するだけであることに注意してください。この場合は、最後の文字を で上書きするため、これで十分です}

douCoh << '{';
for(unsigned int i=0;i<dataSize;i++)
  if(v[i].test) douCoh << i+1 << ',';
douCoh.seekp(-1,douCoh.cur); douCoh << '}';

おすすめ記事