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

кодирование текста - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка при удалении элемента (STL) http://www.cyberforum.ru/cpp-beginners/thread112510.html
У меня есть вектор списков. Мне нужно во внутреннем цикле(в списке) удалить элемент. Ошибка компиляции,когда удаляю с помощью алгоритма,причем лезет куда-то в header STL. Подскажите,как нужно правильно сделать! std::vector<std::list<Process> > processQueue_; Process running; for (std::vector<std::list<Process> >::iterator i = processQueue_.begin(); i!= processQueue_.end(); ++i) {...
C++ алгоритм ферма Выясните с помощью Алгоритма Ферма , являються ли n произвольных чисел простым , в случае составного числа,разложители на множители!!! Все делаеться на си++!!! http://www.cyberforum.ru/cpp-beginners/thread112504.html
двумерный массив.С++ C++
1)дана квадратная матрица И х И.Переставляя её строки и столбцы,добиться того,чтобы найбольший элемент(или один из них)оказался на гл.диагонали #include <iostream> #include "time.h" int main() { const int N=10;
C++ Сумма цифр натурального числа
1) Написать и протестировать функцию, которая по заданному натуральному числу определяет количество цифр в нем и их сумму. 2)Даны натуральные числа n, m и k. Написать и протестировать функцию, которая возвращает суммы, полученные в результате сложения k младших цифр числа n и k старших цифр числа m. Напишите пожалуйста ;) Добавлено через 1 час 20 минут 1 задание не нужно, помогите со 2...
C++ перевод дробной части из одной с\с в другую http://www.cyberforum.ru/cpp-beginners/thread112492.html
int main() {string s,s1,s2; int r1,i,N,n1,n2,k,k2,K,pos,b1,b2,d1,Nf,K1; float K2,K3; cout<<"Vvedite ishodnoe chislo="; cin>>s; cout<<"Vvedite ishodnoe osnovanie chisla="; cin>>b1; cout<<"Vvedite konechnoe osnovanie chisla="; cin>>b2;
C++ Программа на массив, работает правильно на половину Задание: нужно чтоб исходный массив отображался в обратном порядке(у меня в обратном порядке выдает только первые 5 элементов) #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; int main(int argc, char *argv) { int a; int i, temp; подробнее

Показать сообщение отдельно
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,276
04.04.2010, 16:33     кодирование текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <io.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys\types.h>
#include <sys\stat.h>
#include <alloc.h>
#include <errno.h>
#include <iostream.h>
 
#define  BUFSIZE  512
 
struct Header
{
    unsigned long CRC;
};
void coder(int source,int target, int count, char* buffer, char** argv , Header file);
void decoder(int source,int target, int count, char* buffer, char** argv);
/***************************************************************************/
void main( int argc, char **argv ) {
  int   source, target;
  int   i;
  char  *buffer;
  int   count;
  char fsource[20], ftarget[20];
  Header file;
  clrscr();
  if( argc != 5 ) {
    printf( "\nWrong dates");
    exit( 1 );
  }
 
  strcpy(fsource, argv[2]);
  strcpy(ftarget, argv[3]);
  if(( source = open( fsource, O_BINARY | O_RDONLY ) ) == -1 ) {
    printf( "\nOpen source file error: %d", errno );
    exit( 2 );
  }
  target = open( ftarget, O_BINARY | O_WRONLY | O_CREAT | O_EXCL, S_IREAD | S_IWRITE );
  if( errno == EEXIST ) {
        printf( "\nFile already exists. Overwrite? (Y/N)\n" );
    i = getch();
    if( ( i == 'y' ) || ( i == 'Y' ) )
          target = open( ftarget, O_BINARY | O_WRONLY | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE );
  }
  if( target == -1 ) {
    printf( "\nOpen target file error: %d", errno );
    exit( 2 );
  }
  count = BUFSIZE;
  if( ( buffer = ( char* )malloc( count ) ) == NULL ) {
    printf( "\nNot enough memory" );
    exit( 3 );
  }
  
  if(!strcmp(argv[1], "/e")){
    coder(source, target, count, buffer, argv, file);
    printf("coding finished successful!!!");
  }
  if(!strcmp(argv[1], "/d"))
    decoder(source, target, count, buffer, argv);
  
  close( source );
  close( target );
  free( buffer );
  getch();
}
//----------------------------------------------------------------------------
void coder(int source,int target, int count, char* buffer, char** argv, Header file){
  unsigned long  CRC = 0;
  file.CRC = 0;
 
  write(target, &file, sizeof(Header));
 
  while( !eof( source ) ) {
    if(( count = read( source, buffer, count ) ) == -1 ) {
          printf( "\nRead file error: %d", errno );
          exit( 4 );
    }
    int j = 0;
    int i = 0;
        for(  i = 0; i < BUFSIZE; i++ ){
              CRC +=buffer[i];
              if( j == strlen( argv[4] ) ) 
                    j = 0;  
              buffer[ i ] ^= argv[4][ j++ ];
        }
    if(( count = write( target, buffer, count ) ) == -1 ) {
          printf( "\nWrite file error: %d", errno );
          exit( 5 );
    }
  }
  file.CRC = CRC;
  lseek(target,0L,SEEK_SET);
  write(target, &file, sizeof(Header));
  lseek(target,0L,SEEK_END);
  
}
//----------------------------------------------------------------------------
void  decoder(int source, int target, int count, char* buffer, char** argv ){
  unsigned long CRC = 0;
  Header temp1;
  read(source, &temp1, sizeof(Header));
  while( !eof( source ) ) {
    if(( count = read( source, buffer, count ) ) == -1 ) {
          printf( "\nRead file error: %d", errno );
          exit( 4 );
    }
    int j = 0;
    int i = 0;
        
    for( i = 0; i < BUFSIZE; i++ ){
              if( j == strlen( argv[4] ) ) 
                    j = 0;  
              buffer[ i ] ^= argv[4][ j++ ];
          CRC +=buffer[i];
        }
    if(( count = write( target, buffer, count ) ) == -1 ) {
          printf( "\nWrite file error: %d", errno );
          exit( 5 );
    }
  }
  if(temp1.CRC == CRC)
    printf("Decoding is successful");
  else
    printf("Decoding is failed");
}
кодирование и декодирование XOR'ом
для кодировки пишешь: /e имя исходного файла имя файла для записи маска(код)
4 элемента через пробел
для декодировки пишешь: /d имя исходного файла имя файла для записи маска(код)
/e C:\in.txt C:\out.txt blabla
/d C:\out.txt C:\in.txt blabla
подключение некоторых хэдэр файлов можно удалить, не помню каких
p.s. на всякий случай: сначала пишешь аргументы, потом компилируешь))
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru