我想爲C++文本輸出流提供類似標籤的功能。該功能應該允許我說「注意這個位置」,然後允許多次插入操作,最後讓我說「添加足夠的填充字符,以便最終在最初記錄的位置之後結束字符」。爲什麼cout.tellp總是返回-1?
標準iostream
系統似乎不能保持列位置,但我曾想過我可以使用tellp()
來僞造它。我的假設是,我的輸出序列中兩點處的tellp()
之間的差異將對應於中間字節的數量。
不幸的是,至少在我的Gnu C++環境中,cout
不保留流位置的小說。每cout.tellp()
請致電returns -1
。這是爲什麼?
'tellp'從來不是任何流中的列位置。它只在可尋求的流中才有意義。 –
@ R.MartinhoFernandes是正確的。 'tellp'應該告訴你爲'seekp'提供什麼值以回到當前位置。在這種情況下,它告訴你沒有這種可能性。 Entabbing必須得到其他方面的支持。 –
謝謝你們兩位。這是seekp的關係,我沒有把握。 –