Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 14.10.2015
Сообщений: 15

Чтение и запись файла

06.11.2015, 08:44. Показов 1829. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Странная ситуация читаю файл в вектор. Провожу над ним эксперимент, возвращаю точную копию считанного файла в новый файл с другим названием. Но с теми же данными, а программа Meld говорит последний символ не совпадает, размеры у них одинаковые в чем дело? В конце правильного файла стоит точка, а в копии пустой символ. Размеры еще раз повторюсь одинаковые даже если во втором файле есть лишний символ. Как это понять.
C++
1
2
3
4
5
6
7
8
9
std::ifstream ifs (file_path+file_name, std::ifstream::binary);
        std::filebuf* pbuf = ifs.rdbuf();
        size_t file_size_out = pbuf->pubseekoff (0,ifs.end,ifs.in);
        pbuf->pubseekpos (0,ifs.in);
        file.resize(file_size_out);
        pbuf->sgetn (&file[0],file_size_out);
        cout<<"&Размер файла:\t"<<file.size()<<"(байт|а|ов)"<<endl;
        pbuf->close();
        ifs.close();
C++
1
2
3
4
5
   std::ofstream ofs (file_path+"RESULT"+file_old_name, std::ofstream::binary);
                std::filebuf* pbuf = ofs.rdbuf();
                pbuf->sputn(&file[0],file.size());
                pbuf->close();
                ofs.close();
Добавлено через 20 часов 13 минут
Вот еще если допустим в середину файла вставить символ char(-1) то файл обрежется? Литературу не могу найти.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.11.2015, 08:44
Ответы с готовыми решениями:

Запись и чтение из файла
Не знаю как подойти. Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц товара, цену...

Чтение/запись файла
Вот сделал такую прогу. Очень простая. Создает файл, где есть 100 полей. Каждое поле это строка из индекса, названия, кол-ва (например...

Запись и чтение из файла
Доброго время суток! Так от балди решыл набросать прогу которая создаёт файл записывает туда 11 рандомных чисел,потом з помощю ifstream я...

3
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.11.2015, 14:04
Какая необходимость использовать rdbuf()?
C++
1
2
3
4
5
6
7
8
9
10
std::ifstream ifs (file_path+file_name, std::ifstream::binary);
ifs.seekg(0, ifs.end);
size_t file_size_out = ifs.tellg();
ifs.seekg(0, ifs.beg);
 
file.resize(file_size_out);
ifs.read(&file[0], file_size_out);
 
cout<<"&Размер файла:\t"<<file.size()<<"(байт|а|ов)"<<endl;
ifs.close();
C++
1
2
3
std::ofstream ofs (file_path+"RESULT"+file_old_name, std::ofstream::binary);
ifs.write(&file[0], file.size());
ofs.close();
1
0 / 0 / 1
Регистрация: 14.10.2015
Сообщений: 15
06.11.2015, 21:29  [ТС]
Так как я хочу быстро записать в вектор большой файл. Где-то читал что через класс std::streambuf. Так ли это?
http://www.cplusplus.com/img/iostream.gif
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.11.2015, 21:41
Не знаю, откуда ты взял, что будет быстрее. Место в векторе резервируется сразу. Считывание идёт блоком. Что ещё надо?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.11.2015, 21:41
Помогаю со студенческими работами здесь

Чтение и запись файла!
Здравствуйте! Вопрос у меня такой: Почему при создании объектов ofstream() и ifstream() в одном файле, значения считанные, например, в...

Запись и чтение из файла
Вспоминаю как работать с файлами в плюсах. Для примера решил просто записать несколько строк в файл, а затем их считать. Но блин что то оно...

Запись и чтение из файла
Здравствуйте не могли бы мне помочь разобраться, что не так. Есть две программы, одна для записи в файл “Writer.exe” а для чтения...

Запись и чтение из файла
Нужно сохранять в файл запись в таком виде Имя Фамилия Телефон Имя ..... помогите плиз реализовать это.И соответсвенно чтение...

Запись и чтение с файла
Есть названия машин, их цена и производитель. Нужно сделать программу, которая при вводе производителя выводит название машины и её цены. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru