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

Считать информацию из одного файла, кодировать во второй и декодировать в третий - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Построить рисунок http://www.cyberforum.ru/cpp-beginners/thread375704.html
Как вывести точки, рядом проставить номера?
C++ Вычисление сумм рядов в языке С++ Помогите решать http://www.cyberforum.ru/cpp-beginners/thread375697.html
C++ Сортировка Шелла
Привет, поменяйте пожалуйста часть кода где ввод/вывод, нужно чтобы брался рандомный массив из 5000 чисел, выводил его на экран, а потом сортировал и выводил отсортированный массив. вроде всё протсо. Исправьте пожалуйста . #include "stdio.h" #include "conio.h" void shellsort(int a,int n) { int j,i,k,m,mid; for(m = n/2;m>0;m/=2) { for(j = m;j< n;j++)
C++ Получение массива цифр из числа,записанного в input.txt
Всем доброго времени суток. И снова ,снова у меня траблы. Третий день бьюсь над сей задачей (Получения двух массивов цифр из двух чисел ,записанных в input.txt). Куча литературы и форумов перевернуты, но тщетно. Уж слишком сложные для моего понимания коды встречались мне (что ,конечно, обуславливается недостаточностью знаний)... Голова кругом... Эксперты,прошу Вас помочь в написании сей...
C++ Минимальные и максимальные значения для типов: char .... http://www.cyberforum.ru/cpp-beginners/thread375678.html
Каковы на вашей машине минимальные и максимальные значения для следующих типов:char int double ?. #include <iostream> #include <limits> int main() { std::cout << "Maximum char value: " << std::numeric_limits<char>::max() << std::endl;
C++ Конвектор png в jpg Хочу написать прогу для конвертирования png формата изображения в jpg формат изображения. Можете объяснить как это реализуется, дать ссылки статьи с примерами, ну и собственные советы по реализации. подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
01.11.2011, 18:52     Считать информацию из одного файла, кодировать во второй и декодировать в третий
solomid, как я понял вы хотите использовать ifstream и ofstream потоки, как пример привожу вам работу с ifstream Указатель на файловый поток в качестве параметра функции
Кроме прямого извлечения данных из потока существуют специальные методы write и read, которіе позволяют записывать/считывать в/из файл целый текстовый блок, поля структур(ы) и т.д. По свободе подлатаю Ваш алгоритм, сразу скажу что о шифровании TEA не наслышан, поэтому правильность encrypt на ваших плечах. Если к тому времени как появится время никто не поможет выложу код сюда в топик

Добавлено через 3 минуты
PS:
Цитата Сообщение от solomid Посмотреть сообщение
FILE *f;FILE *f2;
* * * * f=fopen("1.txt","rb");
* * * * f2 = fopen("2.txt","rb");
- всмотревшись вижу вы хотите Си доступ к файлам организовать, что ж сути это не поменяет. Вообщем подождите немножко я вами в хорошем смысле єтого слова займусь

Добавлено через 8 часов 1 минуту
Вот как я это вижу
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
//ГђГіГ±Г±ГЁГґГЁГЄГ*öèÿ
ostream& operator<<(ostream &stream,char* s){
        for(char* ps=s; *ps; ps++){
                if(*ps=='Вё')
                        stream<<char(241);
                else if(*ps=='ВЁ')
                        stream<<char(240);
                else if(*ps>=-64 && *ps<=-17)                   
                        stream<<char(*ps+64+128);
                else if(*ps<0)
                        stream<<char(*ps+64+176);
                else
                        stream<<*ps;
        }
        return stream;
}
 
typedef unsigned int uint32_t;
 
void encrypt(unsigned int num_rounds, uint32_t *v, uint32_t const *k) {
    unsigned int i;
    uint32_t v0=v[0], v1=v[1], sum=0, delta=0x9E3779B9;
    for (i=0; i < num_rounds; i++) {
        v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
        sum += delta;
        v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);
    }
    v[0]=v0; v[1]=v1;
}
void decrypt(unsigned int num_rounds, uint32_t *v, uint32_t const *k) {
    unsigned int i;
    uint32_t v0=v[0], v1=v[1], delta=0x9E3779B9, sum=delta*num_rounds;
    for (i=0; i < num_rounds; i++) {
        v1 -= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);
        sum -= delta;
        v0 -= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
    }
    v[0]=v0; v[1]=v1;
}
 
int main()
{
    setlocale(LC_ALL,"rus");
 
    uint32_t v[ 2 ] /*= { 0xBADDFACE, 0xacccdfac }*/;
    FILE * f = fopen("text.txt","r");
    fscanf(f,"%X%X",&v[0],&v[1]);
    fclose(f);
    uint32_t k[ 8 ] = {  1010101010,
                         1010101010,
                         1010101010,
                         1010101010,
                         1010101010,
                         1010101010,
                         1010101010,
                         1010101010
                       };
    cout << "Г’ГҐГЄГ±ГІ: " << hex << v[ 0 ] << " " << v[ 1 ] << endl;
    encrypt( 32, v, k );
    cout << "Г‡Г*øèôððîâГ*Г*Г*ûé ГІГҐГЄГ±ГІ: " << hex << v[ 0 ] << " " << v[ 1 ] << endl;
    decrypt( 32, v, k );
    cout << "ГђГ*ñøèôðîâГ*Г*Г*ûé ГІГҐГЄГ±ГІ: " << hex << v[ 0 ] << " " << v[ 1 ] << endl;
}
text.txt
0xBADDFACE 0xacccdfac


Цитата Сообщение от solomid Посмотреть сообщение
uint32_t k[ 8 ] = { *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010
* * * * * * * * * * * *};
- как я понимаю это что-то вроде ключа алгоритма, так зачем его закоментили?

Добавлено через 2 минуты
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
setlocale(LC_ALL,"rus");
- на старье это не работает, рекомендую
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
//Руссификация
ostream& operator<<(ostream &stream,char* s){
* * * * for(char* ps=s; *ps; ps++){
* * * * * * * * if(*ps=='ё')
* * * * * * * * * * * * stream<<char(241);
* * * * * * * * else if(*ps=='Ё')
* * * * * * * * * * * * stream<<char(240);
* * * * * * * * else if(*ps>=-64 && *ps<=-17) * * * * * * * * *
* * * * * * * * * * * * stream<<char(*ps+64+128);
* * * * * * * * else if(*ps<0)
* * * * * * * * * * * * stream<<char(*ps+64+176);
* * * * * * * * else
* * * * * * * * * * * * stream<<*ps;
* * * * }
* * * * return stream;
}
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
fscanf(f,"%X%X",&v[0],&v[1]);
- просто сканируе hex-ы из файла, если в файл нужно поместить и это
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
uint32_t k[ 8 ] = { *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010,
* * * * * * * * * * * * *1010101010
* * * * * * * * * * * *};
, то могу доработать, просто конкретно запишите что в файлах записано и тогда подгоню программу под данные файлов
 
Текущее время: 23:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru