почему cout.tellp всегда возвращает -1?

Я хочу предоставить возможность табуляции для потоков вывода текста C++. должен позволить мне сказать «обратите внимание на эту позицию», затем разрешить несколько операций вставки и, наконец, позволить мне сказать «добавьте достаточное количество символов заполнения, чтобы закончить N символов после первоначально отмеченной позиции».

Стандартная система iostream, похоже, не поддерживает позицию столбца, но я подумал, что смогу подделать ее, используя tellp(). Я предполагал, что разница между tellp()в двух точках моей выходной последовательности будет соответствовать количеству промежуточных байтов.

К сожалению, по крайней мере, в моей среде Gnu C++, coutне поддерживает фиктивную позицию потока. Каждый вызов cout.tellp()возвращает -1. Почему так?

6
задан Shafik Yaghmour 10 April 2013 в 02:32
поделиться