Форум программистов, компьютерный форум 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; подробнее

Показать сообщение отдельно
WhiteP
605 / 203 / 23
Регистрация: 20.11.2012
Сообщений: 419
23.11.2015, 20:04     Перевести строку в 16-й формат
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
#include <iostream>
#include "windows.h"
#include <fstream>
#include <iomanip>
 
int main(int argc, char ** argv)
{
    //открываем бинарный файл
    std::ifstream ifs("test.exe", std::ios::binary);
 
    //формируем буфер из 512 байт
    PBYTE buf = new BYTE[512];
 
    //читаем 512 байт в буфер
    ifs.read((char*)buf, 512);
 
    //заливка нулями (чтобы было 01, а не 1)
    std::cout.fill('0');
 
    //отступ для выравнивания таблицы
    std::cout << "     ";
 
    //шапка с номерами байт
    for (int i = 0; i < 16; i++)
        //вывод в 16м формате, прописными символами, шириной мин 2 символа (остальное заливается 0 (см. выше)
        std::cout << "  " << std::hex <<  std::setw(2)<< std::uppercase << i;
 
    //отступ
    std::cout << '\n' << std::endl;
 
    //выводим по 16 байт на строку
    for (int i = 0; i < 512; i+=16)
    {
        //номер строки
        std::cout << std::hex << std::setw(3) << std::uppercase << i << "  ";
        for (int c = 0; c < 16; c++)
        {
            //вывод потока байт в 16м формате, прописными символами, шириной мин 2 символа (остальное заливается 0 (см. выше)
            std::cout << "  " << std::hex << std::setw(2) << std::uppercase <<(int) buf[i+c];
        }
        std::cout << std::endl;
    }
    delete[] buf;
    system("pause");
    ifs.close();
}
А зачем string? Я C++ не помню уже, все больше неприплюснутый си и winapi, так что вот так сразу как в строку, а не в поток выводить - не скажу.
А вообще работа с потоком байт через string - это костыль тот еще, имхо.
 
Текущее время: 14:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru