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

Шифрование текстового файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сравнение слов в строке http://www.cyberforum.ru/cpp-beginners/thread1686742.html
Не могу понять как сравнивать слова. В данной проге у меня просто выводятся все 4-х символьные слова, а нужно чтобы выводились только те которые повторяются. Понимаю что нужно заводить новую ветку для поиска слова с которым сравнивается, но не знаю как. Может кто подскажет. И как потом вывести строку в которой одинаковые слова будут отсутствовать. Классами и string пользоватся нельзя #include...
C++ Вывод информации, сколько в среднем сотрудников работает в одном подразделении данного учреждения В файле содержатся сведения о телефонах всех сотрудников некоторого учреждения. В первой строке сообщается количество сотрудников N, каждая из следующих N строк имеет следующий формат: <фамилия> <инициалы> <телефон>. Сотрудники одного подразделения имеют один и тот же номер телефона. Номера телефонов в учреждении отличаются только последними двумя цифрами. Требуется написать программу, которая... http://www.cyberforum.ru/cpp-beginners/thread1686737.html
C++ Что означает "?" в C++?
Например, есть строчка: const Int TMP = allBox ? numBox() : sizeBox(); Что это значит? :)
C++ Sqlite3, связь один ко многим, как ускорить выборку по ключу или правильно написать select. join
вот так создается таблица: sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS lib (id INT PRIMARY KEY NOT NULL, lid INT, name CHAR, path CHAR, info TEXT, sid INT);", NULL, 0, &zerrmsg); вот селекты: запрос по полю id: t2 = get_time(0); sqlite3_exec(db,"BEGIN;",0,0,&err); ........................ while (numlist != NULL)
C++ вложенный циклы решаете пожалуйста http://www.cyberforum.ru/cpp-beginners/thread1686717.html
в вещественной матрице размером n x m определить наименьший среди элементов заштрихованной области, считая его единственнымю Вывести сумму индексов найденного элемента. При вводе чисел p и q проверить истинность неравенства 1<=p<=q<=n Спасибо большое
C++ Шарики(Задача по олимпиадному программированию) Решение(не идеально,я знаю): #include <iostream> #include <stdio.h> #include <math.h> using namespace std; int main(){ freopen("input.txt","r",stdin); подробнее

Показать сообщение отдельно
yrceus
 Аватар для yrceus
80 / 80 / 54
Регистрация: 25.08.2013
Сообщений: 321
27.03.2016, 21:18     Шифрование текстового файла
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
#include <iostream>
#include <vector>
#include <string>
#include <Windows.h>
#include <fstream>
#include <cassert>
#include <locale>
using namespace std;
// шифр Полибия почитай принцип
//------------------------------------------------------------------
void fllng(const char beg, const char end, vector<string> &alph) { //
    for (char sym = beg; sym <= end; ++sym) { // записываем алфавит 
        if (alph.back().size() == 6)    // по шесть символов в строку
            alph.emplace_back();// переходим к пустой строке
        alph.back().append(1, sym); // записываем в строку - string.append() почитай
    }
}
//-----------------------------------------------------------------
bool serch_sym(fstream &fail, vector<string> &alph, int &sym, int fl) { // фун, меняет символ на нужный и зап. обратно в файл
    for (auto iter = alph.begin(); iter < alph.end(); ++iter) { // перебираем строки с символами(алфавит)
        int ind = iter->find(sym, 0);// ищем символ в строке и записываем позицию
        if (ind != string::npos) { // если нашли
            fail.seekp(-1, fstream::cur); // меняем позицию в файле на одну назад от только что прочитанного
            if (fl) // что-то если кодируем(или наоборот)
                if (++iter == alph.end() || iter->size() < ind)
                    sym = alph.begin()->at(ind);
                else
                    sym = iter->at(ind);
            else     // что-то если разкодируем(или наоборот)
                if (iter == alph.begin() && (--alph.end())->size() < ind)
                    sym = (alph.end() - 2)->at(ind);
                else if (iter == alph.begin())
                    sym = (--alph.end())->at(ind);
                else
                    sym = (--iter)->at(ind);
                if (fail << static_cast<char>(sym) << flush) //записываем измененный символ в файл
                    return true;
                return false; // если почему-то не записалось
        }
    }
    return false; // если как-то промахнулсь вообще...
}
//-----------------------------------------------------------------
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    setlocale(LC_CTYPE, "rus");
    vector<string> llatin(1); // векторы для алфавита
    vector<string> lkiril(1);
    vector<string> ulatin(1);
    vector<string> ukiril(1);
    fllng('A', 'Z', ulatin);// записываем алфавит 
    fllng('А', 'Я', ukiril);
    fllng('a', 'z', llatin);
    fllng('а', 'я', lkiril);
    fstream fail("Polib.txt", fstream::ate | fstream::in | fstream::out); // открываем файл с позицией в конце
    if (!fail.is_open()) {      // если не нашли файл, создаем                  // на чтение и на запись
        fail.open("Polib.txt", fstream::out);
        fail.close();
        fail.open("Polib.txt", fstream::ate | fstream::in | fstream::out);
    }
    string sent; 
    cout << "Введите строки для кодировки, для конца ввода Ctrl + Z\n";
    while (getline(cin, sent)) // построчко записываем в файл
        fail << sent + '\n' << flush;
    cin.clear(); // сбрасываем после EOF флаги состояния ввода
    fail.seekg(0, fstream::beg); // переходим в начало файла, перемещаем позицию
    int sym, fl = -1; // fl флаг, если единица кодируем, если ноль разкодируем
    while (fl < 0 || fl > 1) { //если не корректно ввели флаг
        cout << "Кодировать 1 разкодировать 0\n";
        cin >> fl;
        if (!cin.good()) {
            while (cin.get() != '\n');
            cin.clear();
        }
    }
    while ((sym = fail.get()) != EOF) { // в цикле перебираем файл посимвольно
        if (sym != 218 && sym >= 'A' && sym <= 'Z') // если не U(костыль) и верхний регистр латиницы
            assert(serch_sym(fail, ulatin, sym, fl)); //assert передает исключение, если в аргументе ложь
        else if (sym >= 192 && sym <= 223) // если кирилица
            assert(serch_sym(fail, ukiril, sym, fl));
        else if (sym >= 'a' && sym <= 'z') 
            assert(serch_sym(fail, llatin, sym, fl));
        else if (sym != 250 && sym >= 224 && sym <= 255) // если кириллица верхний регистр
            assert(serch_sym(fail, lkiril, sym, fl));
    }
    fail.close();
    return 0;
}
 
Текущее время: 18:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru