LINUX.ORG.RU

файловые потоки в STL


0

0

Привет всем. В проге я читаю с fifo у сервера данные (xml-ник). 
Реализация через Цэшные вызов fgets работает на ура. На ЦЕПП
типа
std::fstrem fifo( "myfifo", std::ios_base::in )
char B;
while ( fifo )
{
     fifo >> B;
     result << B;
}
fifo.close();

Обрезает ( то что я пока вижу ) '\n', не знаю как '\t', '\f' и т.п.
Пробовал объявлять B как строку, fifo дополнительно задавать 
binary mode - такая же фигня. Кто знает скажите как сделать такую
фигню или ткните где почитать ( чот у Страуструпа в книжке не нашел )
★★

Ответ на: комментарий от PETER

> Всеж советы приветствуются.

1) Читать документацию. 2) Использовать буфера потоков для неформатированного ввода/вывода

abbr
()
Ответ на: комментарий от abbr

Ответ не принимается т.к. не содержит дельной информации ( см. посты выше )

PETER ★★
() автор топика

Оператор >> по умолчанию пропускает пробелы, символы нововой строки и т.д. Это поведение можно изменить, уж не помню как, давано не работал(RTFM). get же просто берет по символу из потока забивая на то, пробел это, '\n' или еще что.

anonymous
()

оно и должно обрезать все пробельные символы перед символом который положится в B, для чтения построчно можно использовать getline.

для непропускания пробелов можно скинуть в потоке skipws (или поставить noskipws)

для бинарных чтения/записи можно пользовать методы read и write

HTH

PS. пробелы это не только ' ', но все, что смещает каретку, но никак не рисуется(типа \t \n) в общем то, для чего isspace(B) != 0

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.