Вопрос № 79468: ПОЯСНЕНИЯ:
Есть ФАЙЛы типизованные, а есть текстовые (например разделитель ;). Работать с файлами можно разными СПОСОБАМИ (классические функции, потоки и т.д.).
РАБОТА с файлами состоит из:
1. Объявления (описания)
2. Открытия н...Вопрос № 79510: Здравствуйте, эксперты!
Подскажите, пожалуйста, как в программах для циклов задействовать многоядерность и многопроцессорность.
Возможна ли работа с extern переменными, чтением-записью в файл и прочее.
Может есть ссылки на русскую докум...Вопрос № 79526: Добр(-ое, -ый, -ой) <утро, день, вечер, ночи>
Расскажите мне, пожалуйста, дорогие эксперты, кое-что об управлении потоками ввода-вывода (iostream.h): как использовать эту систему для организации записи определенной структуры в файл, чт...
Вопрос № 79.468
ПОЯСНЕНИЯ:
Есть ФАЙЛы типизованные, а есть текстовые (например разделитель ;). Работать с файлами можно разными СПОСОБАМИ (классические функции, потоки и т.д.).
РАБОТА с файлами состоит из:
1. Объявления (описания)
2. Открытия на запись
3. Запись в файл
4. Открытия на чтение
5. Чтение в переменную
6. Закрытие
ВОПРОС: Есть массив структурного типа данных вида {double, double, double, bool}. Необходимо организовать РАБОТУ с ФАЙЛАМИ на примере этого массива как можно большим числом СПОСОБОВ.
P.S. MS Visual C++ 6.0. Обращайте внимание на регистр букв. Оценки будут. Слежу за мини-форумом. Вопрос для меня очень важен.
Отправлен: 23.03.2007, 10:11
Вопрос задал: NiGHT (статус: Практикант)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Хватов Сергей
Здравствуйте, NiGHT!
Ну основных вариантов два - либо писать и читать в символьном виде, либо в двоичном.
Для первого способа лучше использовать iostreams. раз у вас C++, превращаете свою структуру в класс (и вообще про структуры в c++ лучше забыть :-), определяете для неё операторы << и >> (прототипы в приложении. Это не методы а stand-alone операторы), и пользуйтесь ими
Для второго придётся использовать fread() и fwrite() так как iostreams с двоичными данными правильно работать не обязаны.
Крайне не рекомендую использовать двоичный формат - всё будет правильно работать только в пределах одной платформы.
Приложение:
Ответ отправил: Хватов Сергей (статус: Студент)
Ответ отправлен: 23.03.2007, 10:53
Отвечает: Ilkras
Здравствуйте, NiGHT!
вы можете пользоваться любым файловым интерфейсом (_write, write, fwrite, FileWrite, CFile::Write) для бинарной записи (fprinft) для текстовой записи. Вы также можете форматировать данные в промежуточно строке и записывать ее функцией для бинарной записи.
Открывать и закрывыть файл разумеется надо функциями соответствующими используемым функциям записи. Для _write это будут _create, _open, _close, _read.
Чтение файла в переменную - в общем случае это неправильный подход. В С++ вы можете скопировать в объект содержимое файла. Однако в любом случае файл читается в блок памяти. Этот блок может быть создан с помощью конструктора и иметь какую то структуру.
Вообще же, я не очень понял вашу цель. Вы хотите сделать это на С или С++. Вы хотите чтоб это было красиво написано или быстро работало или было переносимо между платформами или содержало минимальное количество строк кода? Поясните пожалуйста.
Ответ отправил: Ilkras (статус: 5-ый класс)
Ответ отправлен: 23.03.2007, 11:28
Вопрос № 79.510
Здравствуйте, эксперты!
Подскажите, пожалуйста, как в программах для циклов задействовать многоядерность и многопроцессорность.
Возможна ли работа с extern переменными, чтением-записью в файл и прочее.
Может есть ссылки на русскую документацию по этому вопросу.
Отправлен: 23.03.2007, 14:02
Вопрос задал: ALEX_T (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: ramok
Здравствуйте, ALEX_T!
Вы можете использовать многопроцессорность только косвенно. ОС решает на каком процессоре что исполнять. В свою очередь вы можете использовать множество процессов и/или threads для распараллеливания работы программы что бы ОС могла запускать их на дополнительных процессорах
Ответ отправил: ramok (статус: Практикант)
Ответ отправлен: 23.03.2007, 15:14
Вопрос № 79.526
Добр(-ое, -ый, -ой) <утро, день, вечер, ночи>
Расскажите мне, пожалуйста, дорогие эксперты, кое-что об управлении потоками ввода-вывода (iostream.h): как использовать эту систему для организации записи определенной структуры в файл, чтение из него, как открыть файл в определенном режиме?
Отвечает: Хватов Сергей
Здравствуйте, Ferruccio Bonipiero!
iostream не предназначен для чтения или записи двоичных данных. Вообще, прежде чем решить писать в файл двоичную информацию надо хорошо подумать - даже смена версии компилятора может изменить формат.
Но вы можете определить операторы << и >> записи и чтения ваших структур или классов,
где просто писать и читать все их поля
Ответ отправил: Хватов Сергей (статус: Студент)
Ответ отправлен: 23.03.2007, 17:33