![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
Тёмный Эльф |
![]() ![]()
Сообщение
#1
|
![]() Влюблённый псих ![]() ![]() ![]() Группа: Пользователи Сообщений: 185 Пол: Женский Реальное имя: Лейла Репутация: ![]() ![]() ![]() |
Программа почему-то не компилируется, посмотрите пожалуйста в чем дело. Выдает ошибку, типа Extra Parameter при вызове некоторых функций.
P.S. А, забыла сказать, что прога делает. Скрывает строку в файле типа jif. (Это прогу я в инете нашла, хочу переделать так, чтобы она работала с bmp файлами.) Прикрепленные файлы ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Это - программа на чистом С, а ты как видно компилируешь ее С++ компилятором? (многие компиляторы действуют по расширению файла-исходника: компилируется test.c - значит будет использован С, если же имя файла test.cpp, то используется С++)... В режиме С программа компилируется нормально.
Если все-таки хочешь работать с С++, то придется предварительные описания функций вида: void CloseF();
, т.е., с пустыми скобками, менять на такие: void CloseF(FILE *, FILE *, FILE *)
, потому что в С++ пустые скобки означают "нет параметров", а в С разрешают передавать любые параметру, т.е. просто указывают, что это - имя функции |
Тёмный Эльф |
![]()
Сообщение
#3
|
![]() Влюблённый псих ![]() ![]() ![]() Группа: Пользователи Сообщений: 185 Пол: Женский Реальное имя: Лейла Репутация: ![]() ![]() ![]() |
Цитата многие компиляторы действуют по расширению файла-исходника: компилируется test.c - значит будет использован С, если же имя файла test.cpp, то используется С++ Спасибо! ![]() |
Тёмный Эльф |
![]()
Сообщение
#4
|
![]() Влюблённый псих ![]() ![]() ![]() Группа: Пользователи Сообщений: 185 Пол: Женский Реальное имя: Лейла Репутация: ![]() ![]() ![]() |
При декодировании в тектовый файл записываются лишние байты, как это можно исправить?
Я так поняла, что здесь прочитывается весь графический файл в текстовый, отсюда и лишние символы. void Decoding(FILE *OutF, FILE *TextF, int count)
{
int bufer[8];
int i,j,byte,g=0;
unsigned char mask[2]={2,1};
size=256;
fseek(InF,numbyteIn,SEEK_SET);
while(count>0){
if(power == 2){
for(i=0; i<8; ){
byte = getc(InF);
bufer[i++] = (byte & mask[0])/2;
bufer[i++] = byte & mask[1];}
byte = 0;
j=7;count--;
for(i=0; i<8; i++){
byte += bufer[i] * (int)pow(2,j);
j--;}
}
if(power == 1){
for(i=0; i<8; i++){
byte = getc(InF);
bufer[i] = byte & mask[1];}
byte = 0;
j=7;count--;
for(i=0; i<8; i++){
byte += bufer[i] * (int)pow(2,j);
j--;}
}
if(g == 3 || g == 5) g++;
if(g < 3){
type[g] = byte;
g++;}
if(g == 4){
g = 0;
size = byte;
//count = 0;
printf("type of file - %s, size of file - %i\n", type,size);
/*g = strlen(TextName);
for(i=0; i<3; i++)
TextName[g++] = type[i];*/
if((TextF = fopen(TextName, "wb+")) == NULL && what){
printf("Oshibka sozdania fila '%s'\n", OutName);
getchar();
CloseF(InF,OutF,TextF);}
fseek(TextF,numbyteText,SEEK_SET);
g = 5;}
if(g>5){
fputc(byte,TextF);
// count++;
}
}
numbyteText = ftell(TextF);
numbyteIn = ftell(InF);
CloseF(InF,OutF,TextF);
return;
}
|
Тёмный Эльф |
![]()
Сообщение
#5
|
![]() Влюблённый псих ![]() ![]() ![]() Группа: Пользователи Сообщений: 185 Пол: Женский Реальное имя: Лейла Репутация: ![]() ![]() ![]() |
Хм. Так и не получилось сделать так, чтобы при декодировании лишние символы не печатались.
Пыталась изменять вот этот участок кода, if(g>5){
fputc(byte,TextF);
// count++;
}
но каждый раз когда я немного редактировала условие if(g>5), программа начинала ругаться. Народ, подскажите плиз, в чем дело. |
Тёмный Эльф |
![]()
Сообщение
#6
|
![]() Влюблённый псих ![]() ![]() ![]() Группа: Пользователи Сообщений: 185 Пол: Женский Реальное имя: Лейла Репутация: ![]() ![]() ![]() |
Люди, у меня возник еще один вопрос по этой проге. Для чего служит массив mask (unsigned int mask[8]={128,64,32,16,8,4,2,1}; ), и почему в разных функциях он описан по-разному? (например, в функции Coding он объявлен как unsigned char mask[4]={254,253,1,2}; , а в функции Decoding как unsigned char mask[2]={2,1};?
Если кто знает, буду рада вашим ответам. |
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 15:43 |