Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Скопировать бинарный файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Где ошибки? http://www.cyberforum.ru/cpp-beginners/thread167019.html
Даны три положительных числа. Определить, можно ли построить треугольник с длинами сторон, равным этим числам. Если можно, то ответить на вопрос, является ли он остро угольным. #include...
C++ Показ чисел, являющихся кубами в интервале Добренького всем здоровьица:-! Помогите, пожалуйста, с задачей: :swoon: Даются два целых числа. Программа показывает числа, являющиеся кубами целых чисел в интервале заданных пользователем чисел,... http://www.cyberforum.ru/cpp-beginners/thread166988.html
Чтение матричных данных из таблицы C++
Имеется текстовый файл с таблицей чисел: 2 3 7 1 4 6 2 4 7 1 5 1 3 0 Нужно по отдельность прочитать цифры через пробел и получить матрицу 7*7, заполнив отсутсвующие элементы цифрами, что...
C++ Определить название файла приложения
Как из приложения определить название? Или полный путь до него? Когда я пишу - я устанавливаю определенное название, но пользователь его может сменить. Подскажите как определить? Спасибо
C++ Прошу раскритиковать алгоритм!!! http://www.cyberforum.ru/cpp-beginners/thread166929.html
Здравствуйте товарищи программисты! Прошу раскритиковать алгоритм для определения является ли число палиндромом, который написаний мною С++. Что не правильно? как можно, или как нужно было писать...
C++ Русский язык для С++. Начал изучаь С++ и хотелось бы испольсовать в своих (приметиных ) программах русский язык. Вот программа ,которая выводи сообщение "Russian" , как сделать что можно было вывести на русском ... подробнее

Показать сообщение отдельно
Union
17 / 17 / 2
Регистрация: 16.08.2010
Сообщений: 252

Скопировать бинарный файл - C++

18.09.2010, 19:55. Просмотров 1392. Ответов 6
Метки (Все метки)

Нужно скопировать бинарный файл. Копировать нужно блоками по 256 байт.
Запись работает отлично, а вот не могу считать никак

Вот мои наработки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
fp=fopen("test.zip", "r"); // Бинарный файл, который необходимо скопировать
std::ofstream ofs;
ofs.open("kopia_test.zip", std::ios::binary); // Копия
char buf[257] = {0}; // Буфер
int i=0;
while(i<size){ // size - размер файла в байтах
    fgets( buf, 1 , fp ); // Считываем блок из 1 байт и записываем в буфер
    i++;
    ofs.write(buf, 1); // Записываем блок из 1 байт из буфера в файл-копию
}
ofs.close();
fclose(fp);
Пример нерабочий. Судя по всему проблема заключается в функции fgets, которая обрабатывает также перенос строки и соответственно перестаёт считывать как встречается любой перенос. Пробовал другие функции (fread, gets, read) что-то не получилось вообще.
И копирование происходит по одному байту, а нужно по 256 байт.

Помогите переписать чтоб работало
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru