Здравствуйте, igna, Вы писали:
I>Вывод строк зависит от того, в каком формате их нужно записывать, с префиксом-длиной или заключительным нулем.
Qt пишет оба варианта для ASCIIZ и первый для строк с указанной длиной.
I>И возможно лучше использовать streambuf вместо ostream.
Нет, т.к. форматированием (преобразованием всего в текстовые данные) занимается именно xstream. Так что писать либо свой класс потока, либо вышеупомянутая функция.
Здравствуйте, igna, Вы писали:
I>>>И возможно лучше использовать streambuf вместо ostream. B>>Нет, т.к. форматированием (преобразованием всего в текстовые данные) занимается именно xstream. I>Зачем это преобразование, если вывод двоичный?
Я говорю о том, что буфер (streambuf) не поможет в этой задаче (двоичного ввода/вывода) и нужно работать (переписывать полностью или использовать write_binary_to_stream) именно с ostream или istream.
Здравствуйте, byleas, Вы писали:
B>Я говорю о том, что буфер (streambuf) не поможет в этой задаче (двоичного ввода/вывода) и нужно работать (переписывать полностью или использовать write_binary_to_stream) именно с ostream или istream.
А я о том, что возможности форматирования потока не помогут в этой задаче (двоичного ввода/вывода) и можно работать непосредственно с буфером.
Здравствуйте, igna, Вы писали:
I>Здравствуйте, byleas, Вы писали:
B>>Я говорю о том, что буфер (streambuf) не поможет в этой задаче (двоичного ввода/вывода) и нужно работать (переписывать полностью или использовать write_binary_to_stream) именно с ostream или istream. I>А я о том, что возможности форматирования потока не помогут в этой задаче (двоичного ввода/вывода) и можно работать непосредственно с буфером.
А как же удобство записи? Или использовать sputc/sputn, или operator <</>>. Вот для удобства и написать свой stream. Да и минимальное "форматирование" всё-таки есть: перевод little-endian, если надо, и запись размера для строк.
Здравствуйте, byleas, Вы писали:
B>А как же удобство записи? Или использовать sputc/sputn, или operator <</>>.
operator<< для записи двоичных данных?
B>Да и минимальное "форматирование" всё-таки есть: перевод little-endian, если надо, и запись размера для строк.
Здравствуйте, igna, Вы писали:
I>operator<< для записи двоичных данных?
А чем плохо? B QDataStream же есть такое.
B>>Да и минимальное "форматирование" всё-таки есть: перевод little-endian, если надо, и запись размера для строк. I>Это у кого оно есть?
У QDataStream.