C++のテキスト出力ストリームにタブのような機能を提供したい。この機能は私に "この位置を書き留めて"と言って、複数の挿入操作を許して、最後に "最初に指摘された位置を超えてN
文字になるように十分な文字を追加する"ことを許可するべきです。なぜcout.tellpは常に-1を返しますか?
標準iostream
システムでは列の位置は維持されていないようですが、私はtellp()
を使って偽造することができると考えていました。私の前提は、出力シーケンスの2つの点におけるtellp()
の違いは、介在するバイトの数に対応するということでした。
残念ながら、少なくとも私のGnu C++環境では、cout
はストリーム位置のフィクションを維持しません。すべてcout.tellp()
returns -1
としてください。何故ですか?
'tellp'は決してストリーム内の列位置にはなりません。シーク可能なストリームでのみ意味があります。 –
@ R.MartinhoFernandesは正しいです。 'tellp'は現在の位置に戻るための' seekp'にどのような値を渡すべきかを伝えます。この場合、そのような可能性はないことを伝えています。 Entabbingは他の方法でサポートされなければならない。 –
ありがとうございます。私が把握できなかったことを求めることは、関係性でした。 –