|
C++
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
|
|
Что такое форматированные и неформатированные данные в C++30.08.2018, 11:57. Показов 10954. Ответов 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 Что такое хэндлер файла? Что такое файловый указатель? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|