Tôi muốn cung cấp khả năng giống tab cho luồng đầu ra văn bản C++. Tính năng này cho phép tôi nói "lưu ý vị trí này", sau đó cho phép nhiều thao tác chèn và cuối cùng cho phép tôi nói "thêm đủ ký tự điền để kết thúc các ký tự N
qua vị trí được ghi chú ban đầu".tại sao cout.tellp luôn trả về -1?
Hệ thống tiêu chuẩn iostream
dường như không duy trì vị trí cột nhưng tôi đã nghĩ rằng tôi có thể giả mạo nó bằng cách sử dụng tellp()
. Giả định của tôi là sự khác biệt giữa tellp()
tại hai điểm trong chuỗi đầu ra của tôi sẽ tương ứng với số byte can thiệp.
Thật không may, ít nhất trong môi trường Gnu C++ của tôi, cout
không duy trì tiểu thuyết của vị trí phát trực tuyến. Mỗi cout.tellp()
gọi returns -1
. Tại sao vậy?
'tellp' không bao giờ là vị trí cột trong bất kỳ luồng nào. Nó chỉ có ý nghĩa trong các luồng có thể tìm kiếm được. –
@ R.MartinhoFernandes là chính xác. 'tellp' là nghĩa vụ phải cho bạn biết giá trị để cung cấp cho' seekp' để trở lại vị trí hiện tại. Trong trường hợp này, nó nói với bạn rằng không có khả năng như vậy. Entabbing phải được hỗ trợ theo cách khác. –
Cảm ơn cả hai. Đó là mối quan hệ để tìm kiếm mà tôi không nắm bắt được. –