|
C++
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
|
|
Что такое форматированные и неформатированные данные в C++30.08.2018, 11:57. Показов 11231. Ответов 37
Метки нет (Все метки)
Сейчас изучаю файловый ввод-вывод и в учебнике наткнулся на форматированные и неформатированные данные. Толком ничего не сказано, не понимаю что это такое и в чём разница.
У меня есть предположение что неформатированные данные - это данные, хранящиеся в файле, который открыт в режиме двоичного доступа. А форматированные - это данные хранящиеся в файле, который открыт в текстовом режиме. Но это только догадки и точного ответа на свой вопрос я не знаю. Надеюсь на вашу помощь, форумчане! Заранее спасибо!)
0
|
|
| 30.08.2018, 11:57 | |
|
Ответы с готовыми решениями:
37
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? Что такое конструктор по умолчанию? Как инициализируются данные-члены объекта? Что такое IIS и что такое PWS? Почему одно без другого не работает? |
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|||
| 07.09.2018, 23:37 | |||
|
1
|
|||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 07.09.2018, 23:42 | ||
|
Разные механизмы. put & get преобразуют данные по сложным, но очевидным правилам (см паст 13). А write - read - как акын, чего дали, о том и поют.
1
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 07.09.2018, 23:45 | ||
|
Компьютер хранит числа в форме байтиков. Грубо говоря, в двоичной системе исчисления с фиксированным числом разрядов (0000 0000 0000 1100). Человек записывает числа в форме циферок. И число этих циферок может меняться (12, а не 0000 0012). Компьютеру неудобно с циферками, человеку неудобно с байтиками. То что ваш учебник называет "форматированным вводом-выводом" - перевод отдельных переменных из одного представления в другое. Только к реальному форматированному выводу все это имеет примерно такое же отношение как рогатка к арбалету. То есть, для студенческих проектов то конечно и file<<var1<<" "<<var2 сойдет. Но если вам скажем, субтитры читать-писать надо, то простым << вы не отделаетесь. И это будет однозначно сложнее чем "да write/read без форматирования и всего делов".
1
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 07.09.2018, 23:50 | |
|
QuakerRUS, в индивидуальной педагогике самое важное и трудно уловимое - понять, чего ж этот пень не понимает. Бывало, что таким пнем бывал я и сам. Но подкопы с разных сторон под этот пень, возможно, и смогут помочь. Тем более, что самому ТС хочется решить старинный вопрос - Что есть истина.
0
|
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 07.09.2018, 23:55 | |
|
Байт, у меня не возникло непонимания чего хочет ТС. Дейтелы, например, достаточно развернуто объясняют чем отличается форматированный ввод/вывод от неформатированного, вопрос собственно про эти отличия и был.
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 07.09.2018, 23:58 | ||
![]() Добавлено через 1 минуту Renji, мы с вами дудим в одну дуду, но на разных регистрах.
0
|
||
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
||
| 08.09.2018, 00:00 | ||
|
0
|
||
| 08.09.2018, 00:01 | |
|
0
|
|
|
C++
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
|
|||
| 08.09.2018, 00:12 [ТС] | |||
|
Добавлено через 2 минуты
0
|
|||
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 08.09.2018, 00:21 | |
|
JustLearn, главное, что вы должны понять, это то, что не стоит смешивать понятия "форматированные и неформатированные данные" и "двоичная работа с файлом". Первое может относиться к любому вводу/выводу, не только к бинарным файлам. Другое дело то, что для организации работы с двоичным файлом как правило используют неформатированный ввод/вывод из-за фиксированных размеров полей, с которыми необходимо работать в бинарном файле.
0
|
|
|
C++
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
|
|
| 08.09.2018, 23:57 [ТС] | |
|
QuakerRUS, у меня осталась ещё парочка вопросов
Но для начала хочу подытожить всю полученную мной информацию и убедиться правильно ли я всё понял. 1) Неформатированные данные (в том числе строки и символы) записываются также, как и данные хранятся в компьютере, т.е. только в числовом представлении. 2) Для организации двоичного ввода-вывода нужно (точнее лучше всего) использовать неформатированные средства ввода-вывода такие как read и write, get и put. 3) Форматированный ввод-вывод предоставляет возможность задавать потокам различные форматы по типу setfill() width() и т.д. 4) При форматированном выводе данные в файл записываются не только в числовом представлении, но и в строковом и символьном. 5) Если в файл производить запись с помощью неформатированных средств, то с помощью форматированных средств чтения считать файл не выйдет. Как и наоборот. Если в файл производить запись с помощью форматированных средств, то с помощью неформатированных средств чтения считать файл не выйдет.
0
|
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 09.09.2018, 01:20 | |
|
1. В неформатированные данные можно передавать что хотите, необязательно данные в "числовом представлении". Хотя как правило при бинарной записи в файл используют такое представление для экономии места.
2. Да. 3. Да. 4. Можно записывать как угодно. Важно понимать различия текстового и бинарного файла. Как правило форматированный вывод используют для записи в текстовые файлы. 5. В общих чертах так. Можно придумать какие-нибудь костыли, но это просто не имеет смысла. Обычно в зависимости от того в каком вы варианте выбрали запись в файл, в таком реализуете и чтение. Лучше книги я не объясню. Если вы считаете, что в той книге, которую вы читаете недостаточно хорошо объяснены эти моменты, возможно стоит прочитать этот материал с другого учебника. Литература есть тут (второй пост). Литература C++
0
|
|
|
C++
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
|
||
| 14.09.2018, 18:41 [ТС] | ||
|
Если да, то я говорю о том же. Я имел в виду, что чтобы мы не записывали с помощью не форматированного ввода-вывода в файле это будет выглядеть в числовом представлении. Или я что-то неверно понял?
0
|
||
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
||
| 14.09.2018, 18:58 | ||
|
0
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 14.09.2018, 20:55 | ||
|
0
|
||
|
C++
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
|
|
| 16.09.2018, 19:34 [ТС] | |
|
QuakerRUS, я что-то окончательно запутался
Можете посоветовать литературу, в которой будет хорошо описан файловый ввод-вывод, в том числе форматированный и неформатированный?Добавлено через 1 минуту Под литературой я имею в виду именно книги, а не статьи в интернете. Всё-таки по книгам приятнее обучаться
0
|
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 16.09.2018, 19:36 | |
|
JustLearn, Харви Дейтел, Пол Дейтел - Как программировать на C++
В целом неплохая книга, хоть и встречаются опечатки. Сам по ней учился, правда по более старому изданию. Литература C++
0
|
|
|
C++
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
|
|
| 23.09.2018, 12:18 [ТС] | |
|
Всем большое спасибо за ответы! Но вопрос пока остаётся открытым. Почитаю Харви Дэйтела, Пола Дэйтела может пойму эту тему.
0
|
|
| 23.09.2018, 12:18 | |
|
Что такое напряжение и что такое сила тока с позиции заряженных частиц Что такое монитор и что такое мьютекс? Это же разные вещи? Что такое метод equals() и что такое класс Object Что такое хэндлер файла? Что такое файловый указатель? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|