IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> error Extra Parameter, Turbo C++, Си
сообщение
Сообщение #1


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Программа почему-то не компилируется, посмотрите пожалуйста в чем дело. Выдает ошибку, типа Extra Parameter при вызове некоторых функций.

P.S. А, забыла сказать, что прога делает. Скрывает строку в файле типа jif. (Это прогу я в инете нашла, хочу переделать так, чтобы она работала с bmp файлами.)


Прикрепленные файлы
Прикрепленный файл  jif.cpp ( 7.78 килобайт ) Кол-во скачиваний: 160
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Это - программа на чистом С, а ты как видно компилируешь ее С++ компилятором? (многие компиляторы действуют по расширению файла-исходника: компилируется test.c - значит будет использован С, если же имя файла test.cpp, то используется С++)... В режиме С программа компилируется нормально.

Если все-таки хочешь работать с С++, то придется предварительные описания функций вида:

void CloseF();

, т.е., с пустыми скобками, менять на такие:

void CloseF(FILE *, FILE *, FILE *)

, потому что в С++ пустые скобки означают "нет параметров", а в С разрешают передавать любые параметру, т.е. просто указывают, что это - имя функции
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Цитата
многие компиляторы действуют по расширению файла-исходника: компилируется test.c - значит будет использован С, если же имя файла test.cpp, то используется С++

Спасибо! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


При декодировании в тектовый файл записываются лишние байты, как это можно исправить?
Я так поняла, что здесь прочитывается весь графический файл в текстовый, отсюда и лишние символы.

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;
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Хм. Так и не получилось сделать так, чтобы при декодировании лишние символы не печатались.
Пыталась изменять вот этот участок кода,
  if(g>5){	
fputc(byte,TextF);
// count++;
}

но каждый раз когда я немного редактировала условие if(g>5), программа начинала ругаться. Народ, подскажите плиз, в чем дело.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Влюблённый псих
***

Группа: Пользователи
Сообщений: 185
Пол: Женский
Реальное имя: Лейла

Репутация: -  1  +


Люди, у меня возник еще один вопрос по этой проге. Для чего служит массив 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};?
Если кто знает, буду рада вашим ответам.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.11.2020 22:14
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name