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

Перевести строку в 16-й формат - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Изменение файла C++ http://www.cyberforum.ru/cpp-beginners/thread1589499.html
Доброго времени суток. Суть вопроса: нужно в файле "test.txt" каждый символ сделать на 4 больше, по таблице ASCII. Например, символ "L" должен стать "P". Но каким образом можно считывать по одному символу и сразу же его заменять? Заранее спасибо.
C++ Вывести информацию о холодильнике с ценой меньше, чем Z #include <iostream> #include <cstring> using namespace std; struct Fridge { string name; string company; int kol; int price; http://www.cyberforum.ru/cpp-beginners/thread1589497.html
C++ Вычислить высоту треугольника, зная две стороны треугольника и угол между ними (использовать указатель)
Здравствуйте помогите пожалуйста. Используя вместо самой переменной указатель на нее написать программу Вычислить высоту треугольника, зная две стороны треугольника и угол между ними.
Программа с меньшей "сложностью" C++
Условия программы: Дан целочисленный массив положительных чисел,(не отсортированный) и полож число "s" типа int . В массиве нет одинаковых элементов. Задача: Вывести на экран коло-во ПАР чисел которые при сумме дают это самое число "s" Казалось бы,Решение очевидно просто сравнивать каждый элемент массива с каждым ну и можно все те числа,что больше "s" просто перекинуть в другой массив и...
C++ Деревьям. Брат корня http://www.cyberforum.ru/cpp-beginners/thread1589490.html
Здравствуйте. Первый раз пишу дерево. Реализую через "сына и брата". Вот такое добавление: void Tree :: Add(Node *&node, int i) { if (node == NULL) { node = new Node(i); } else if (i < node->x) { Add(node->son, i); } else {
C++ В каждом числе массива определить количество разрядов, равных "1" Вот задание В каждом числе массива определить количество разрядов, равных "1". Записать это количество в отдельный массив. Числа рандомные и их надо еще вывести в двоичном коде(Это я сделал вроде как) Количество я так понимаю надо считать через for,но вот как реализовать до меня не доходит # include <iostream> # include <cstdlib> # include <ctime> using namespace std; подробнее

Показать сообщение отдельно
Nik-
19 / 19 / 9
Регистрация: 12.07.2015
Сообщений: 322
29.11.2015, 11:05  [ТС]     Перевести строку в 16-й формат
Весь заголовочный файл сканирования. Скорее всего не работает удаление. 71 строка.
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
#pragma once
 
#ifndef SCAN_H_INCLUDED
#define SCAN_H_INCLUDED
 
#include <fstream>
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
void scan(char* pathToFile)
{
    string bytes;//Перемнная для содержания сигнатуры
    string signature;//Перемнная для содержания сигнатуры после конвертации в 16 вид
    ostringstream oss;//Поток для записи из файла в переменну.
    ifstream base("C:\\Base.bas");//Поток чтения из файла
    if (!base.is_open())//Проверка на открытие файла
        cerr << "Base can't be opened!" << endl;
    ifstream suspectFile(pathToFile, ifstream::binary);//Потое открытия проверяемого файла
    if (!suspectFile.is_open())//Проверка на открытие файла
        cerr << "Can't open file!" << endl;
 
    bool flag = false;//Флаг, определяющий наличие вируса. 1 - есть, 0 - нет.
    char choise;//Выбор
 
    oss << suspectFile.rdbuf();//Записываем в поточную переемнную текст из файла, открытого в двоичном режиме
    string data = oss.str(); // содержимое файла записываем в data
 
    suspectFile.close(); //закрываем файл
 
    int p;
    
    while (getline(base, bytes))//Пока идет запись текста из базы в переменную
    {
        for (int i = 0; i < bytes.size(); i += 2)
            signature += static_cast<char>(stoi(bytes.substr(i, 2), nullptr, 16));//Записываем в переменную сигнатуру
        if ((p = data.find(signature)) != string::npos)//ищем нужную последовательность в последовательности файла
        {
            flag = true;//Флаг - 1. Вирус обнаружен
            break;//Останавливаем цикл
        }
    }
    
    if (flag == true)//Если файл закончился и флаг не принял значение 1, то вирус есть
    {
        cout << "Est virus!" << endl;//Вывод сообщения об опасности
        cout << "Enter what you want to do(d - delete, s - skip, r - review): ";//Приглашение на ввод буквы соответствующему ей выбору
        cin >> choise;//Ввод одной буквы
 
        for (int i = 0; i < 1; i++)//Предпологает только один ввод
        {
            switch (choise)
            {
            case 'd'://Удаление файла
            {
                if (remove(pathToFile) != 0)//Если файл не удалился
                    cerr << "File isn't deleted!" << endl;//Сообщение об ошибке, что файл не удален
                else cout << "File is deleted!" << endl;//Если удален, то вывести, что файл удален
                break;
            }
 
            case 's'://Пропуск файла
            {
                cout << "File is skiped!" << endl;
                continue;//Продолжить работу
                break;
            }
 
            case 'r'://лечить
            {
                ofstream review(pathToFile, ios::binary ,ios_base::trunc);
                data.erase(p, signature.size());//Удаляем сигнатуру вируса из буффера, содержащего данные файла
                review << data;//Записываем измененные данные файл(файл безопасен)
                cout << "File is reviewed!" << endl;
                review.close();
            }
            default:
                cout << "Enter 'd', 's' or 'r'" << endl;
                break;
            }
        }
    }
    else cout << "Virusov net!" << endl;
    base.close();
}
 
#endif
 
Текущее время: 15:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru