0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 39
1

Работа с файлами и байтами C++

20.11.2019, 22:47. Показов 2096. Ответов 1
Метки c++ (Все метки)

Доброго времени суток!
Прошу помощи з данным заданием:

-Пользователь задает имя файла. Если имя задано некорректно, выдать
соответствующее сообщение и прекратить работу программы.
- Считать из данного файла первые n байт в массив типа byte[] и вывести его на экран в
строку в десятичном виде. Число n задает пользователь. Если байтов в файле меньше
чем n, считать все байты файла. Если n>20, принять n=20. Если n задано некорректно,
принять n=5.
- Сформировать соответствующий бинарный массив (состоящий из 0 и 1) и вывести его
на экран разделяя каждые 8 бит (байт) пробелом.
- Найти и выделить синим цветом подпоследовательности, состоящие из пяти нулей.
Посчитать их количество. Найти и выделить красным цветом подпоследовательности,
состоящие из пяти единиц. Посчитать их количество. Или вывести сообщение об их
отсутствии.
Миниатюры
Работа с файлами и байтами C++  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2019, 22:47
Ответы с готовыми решениями:

Работа с байтами
Здравствуйте! Решил сделать никому не нужную и бесполезную программу, суть которой - хранение...

Работа с байтами
Добрый вечер.подскажите пожалуйста самый рациональный способ перевода двух байтов. например у меня...

Работа с байтами в С++
В каком виде лучше работать с байтами? В виде целочисленных типов , либо возможно unsigned char ? В...

Работа с байтами =)
Мне вот надо реализовать такую штуку: в листбоксе список файлов, нужно их вписать в один файл так:...

1
0 / 0 / 0
Регистрация: 01.04.2018
Сообщений: 39
23.11.2019, 01:14  [ТС] 2
Помогите пожалуйста перевести данный код в C++

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
 
namespace ConsoleApplication1 {
    class Program {
        static void RotateRight5(byte[] bytes) {
            int cb = (bytes[bytes.Length - 1] & 0x1F) << 3;
            for (int i = 0; i < bytes.Length; i++) {
                int tmp = (bytes[i] & 0x1F) << 3;
                bytes[i] = (byte)((bytes[i] >> 5) | cb);
                cb = tmp;
            }
        }
 
        static void PrintBits(byte[] bytes, int hl) {
            for (int i = 0; i < bytes.Length; i++) {
                if (i == hl) Console.ForegroundColor = ConsoleColor.Red; else Console.ResetColor();
                Console.Write("{0} ", Convert.ToString(bytes[i], 2).PadLeft(8, '0'));            
            }
            Console.WriteLine();
        }      
 
        static void Main(string[] args)
        {
            Console.Write("Введите имя файла: ");
            Console.ForegroundColor = ConsoleColor.Magenta;
            string file = Console.ReadLine();
            Console.ResetColor();
            Console.Write("Проверка: ");
            Console.ForegroundColor = ConsoleColor.Magenta;
            if (!File.Exists(file)) {
                Console.WriteLine("Файл не существует");
                Environment.Exit(1);
            } else Console.WriteLine("OK");
            Console.ResetColor();
            Console.Write("Введите количество байтов (3-32): ");
            Console.ForegroundColor = ConsoleColor.Magenta;
            int n;
            if (!int.TryParse(Console.ReadLine(), out n)) n = 14;
            n = Math.Min(32, Math.Max(3, n));
            byte[] bytes = new byte[n];
            using (FileStream fstream = File.OpenRead(file)) {
                Array.Resize(ref bytes, fstream.Read(bytes, 0, n));
            }
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Последовательность байтов:");
            Console.ResetColor();
            foreach (byte b in bytes) Console.Write("{0} ", b);
            Console.WriteLine();
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Бинарная последовательность:");
            PrintBits(bytes, -1);
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Сдвиг вправо на 5 бит:");
            RotateRight5(bytes);
            PrintBits(bytes, -2);
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("Преобразование:");
            Array.Sort(bytes, (x, y) => (y & 1) - (x & 1));            
            PrintBits(bytes, Array.FindIndex(bytes, x => (x & 1) == 0));
            Console.ReadKey();
        }
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2019, 01:14
Помогаю со студенческими работами здесь

Работа с битами и байтами
Написать программу, которая : 1. Выделяет каждый байт целого числа . 2. Выводит по битам...

Работа с UTF байтами
Здравствуйте! Я сейчас переписываю небольшую утилитиу с AS3 на C# с которым дел имел не особо...

Работа с бинарными байтами
Нужно организовать чтение бинарных байтов (типу 01011101 кто не знал) из большого файла и запись их...

Работа с байтами из FileStream.
Помогите пожалуйста составить код. Нужно при помощи FileStream считывать файл и параллельно, над...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru