Имя пользователя:
Пароль:
 

Название темы: Бинарные файлы
Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Цитата Admiral:
В программе посимвольно проверяются данные, с помощью sprintf не выходит их складывать в переменную-элемент структуры »
Потому что надо договариваться об интернтерфейсе между программами. Если вывод одной программы - форматированный текст, значит программа, которая этот вывод читает, должна пользоваться функциями форматированного текста. Если вывод - поток двоичных данных, программа читающая должна воспринимать их как двоичные данные. Пример:
функции printf, scanf - для форматированного ввода-вывода
функции fread, fwrite - для двоичного.
Некорректно ожидать, что вывод в цикле символов без разделителей пробелами функцией printf будет на ура воспринят функцие scanf (которая, к примеру, пробелами проверяет ограницы полей ввода).
Ещё пример несовпадения интерфейсов:
Код: Выделить весь код
Массив чисел в нотации pascal:  (1, 2, 3, 4, 5)
Массив чисел в нотации c/c++: {1, 2, 3, 4, 5}
Строчка данных в файле csv:   1; 2; 3; 4; 5
Строчка данных, воспринимаемая кодом (числа, разделённые пробелами короче)
copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter<int>(vector_of_int)) 
1 2 3 4 5
Как видите, одно и то же можно выразить разными способами. А чтобы передать данные, нужно чтобы операции чтения и записи пользовались одним языком (нотацией).

Отправлено: 09:46, 28-04-2009 | #13

Название темы: Бинарные файлы