|
C++
3 / 3 / 1
Регистрация: 21.10.2017
Сообщений: 121
|
|
Что такое форматированные и неформатированные данные в C++30.08.2018, 11:57. Показов 11104. Ответов 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 Что такое хэндлер файла? Что такое файловый указатель? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|