|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.08.2009, 15:31 | #11 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Код:
Код:
Код:
Код:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
15.08.2009, 16:24 | #12 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
вопрос малость отходит от темы, но тем не менее он не требует долгих рассуждений. текст программы тот же самый, только я попытался таким образом открыть не картинку, а mp3 файл. В результате - программа очень долго показывала различные цифры, около минуты, я даже подумал, что произошло зацикливание программы, но в итоге я увидел лишь последние нули (в начале другие числа были), в конце концов на экране остались одни нули. Хочется спросить почему это так? потому что консольке не хватило памяти запомнить всё, что там находилось?
вот текст Код:
Последний раз редактировалось Dimarik; 15.08.2009 в 16:28. |
15.08.2009, 16:37 | #13 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Программа вывела содержимое файла. Как вы и хотели.
Для наглядности можете изменить цикл вывода вот так: Код:
И еще: освобождайте память! Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
15.08.2009, 17:24 | #14 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
скажите плиз. я работаю с картинкой. после выполнения программы картинку невозможно открыть
Код:
когда 2 строчку иначе напишу - никаких действий с картинкой не происходит fout.write(p, sizeof(char)*len); Последний раз редактировалось Dimarik; 15.08.2009 в 17:28. |
15.08.2009, 19:16 | #15 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
а что думаете по поводу этой строки? может в не ошибка?
fout.write((char*)&p, sizeof(char)*len);// ЗДЕСЬ РАЗНИЦА потому что в одном случае есть результат. в другом - нет я ещё думал про один случай. если открываешь картинку как текст и вносишь какое-то изменение, например добавляешь в конце какой-то символ, затем открываешь картинку - она не открывается и это понятно, но дальше убираешь сделанное ранее изменение и сохраняешь и открываешь картинку, а она всё равно не открывается. может с этим как-то связано? и алгоритм неправильный? но почему он не правильный? я ж как двоичный файл открываю... |
15.08.2009, 23:47 | #16 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Картинку-то вы считываете, но перед открытием выходного файла память под нее очищаете:
Код:
Код:
И еще: если уж вы хотите картинку закодировать, то логично будет вносить в нее изменения до записи в файл ) Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
16.08.2009, 11:57 | #17 | |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
Цитата:
Код:
причём так происходят изменения с файлом fout.write((char*)&p, sizeof(char)*len); а так нет fout.write(p, sizeof(char)*len); почему? Последний раз редактировалось MaTBeu; 16.08.2009 в 16:09. |
|
16.08.2009, 18:04 | #18 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Сравните две строчки и найдите одно отличие.
ваш вариант: Код:
Код:
Цитата:
Код:
Поместите цикл до записи в файл 2.bmp.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
16.08.2009, 21:24 | #19 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
ну вот, я выполнил
сначала так Код:
а затем Код:
fout.write((char*)&p, sizeof(char)*len); и этим fout.write(p, sizeof(char)*len); |
16.08.2009, 21:40 | #20 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Естественно, не открылась. Вы в обоих случаях открываете файл "5.bmp". И в обоих же случаях файл "2.bmp" оказывается зашифрован.
Цитата:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хранение текста в двоичном файле | Nitrino | Общие вопросы C/C++ | 63 | 04.06.2009 02:46 |
Десятичные дроби в двоичном виде | Ukrajinec | Помощь студентам | 2 | 13.04.2009 11:29 |
Вывод байта в двоичном пердставлении (С++) | trollik | Помощь студентам | 6 | 01.09.2008 23:55 |
Необходимо представить десятичное число в двоичном виде | Xardas | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 26.01.2008 00:54 |