Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
 Аватар для Leonman
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274

Запихнуть в vector<int>, char?

27.09.2013, 23:18. Показов 4132. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Вот решил написать программу, которая переводила бы число из десятичной системы счисления в шеснадцатиричную систему. Столкнулся с проблемой. Т.к. в шеснадцатиричной системе помимо цифр есть ещё и буквы, возник вопрос, как в векторный массив типа int можно поместить переменную типа char?

Или можно использовать не vector, а что-то другое, но суть в том, что память должна будет выделяться денамическим путём.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.09.2013, 23:18
Ответы с готовыми решениями:

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

Vector<unsigned char> в int
есть vector&lt;unsigned char&gt; размером 4 байта..и мне надо перевести их в 1 число типа int. т.е. типо int command = tempN.data(); но ...

error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main
//Vector.h #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;climits&gt; #include &lt;vector&gt; #include &lt;stdlib.h&gt; #include &lt;fstream&gt;...

19
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2013, 23:22
Зачем vector <int>? Опишите, как перевод делаете и зачем нужен вектор.
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
27.09.2013, 23:27
Leonman, char и int интегральные типы, разница между ними лишь в размере.
C++
1
2
3
const char *str = "hello";
std::vector<int> vec (5,0);
vec[2] =  str[2];
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2013, 23:37
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Leonman, char и int интегральные типы, разница между ними лишь в размере.
C++
1
2
3
const char *str = "hello";
std::vector<int> vec (5,0);
vec[2] =  str[2];
Зачем тогда, вообще, vector <int>? Чтобы в него помещать char? vector <char> есть или string.
0
134 / 132 / 51
Регистрация: 25.05.2013
Сообщений: 233
27.09.2013, 23:38
Leonman, можно воспользоваться манипулятором hex для отображения числа в шестнадцатеричной СС( а также oct для отображения числа восьмеричной СС ).
Вот пример.
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
#include <iostream>
#include <iomanip>
#include <vector>
 
using namespace std;
 
int main() {
 
    vector < int > ivec;
 
    // заполнили вектор числами 0, 10, 20, 30 .. 90
    for ( int i = 0; i < 100; i += 10 )
        ivec.push_back( i );
 
    // выводим в десятичном виде
    for ( vector < int >::const_iterator it = ivec.begin(); it != ivec.end(); ++it )
        cout << setw( 4 ) << *it;
 
    cout << endl;
 
    // выводим в восмеричном виде
    for ( vector < int >::const_iterator it = ivec.begin(); it != ivec.end(); ++it )
        cout << setw( 4 ) << oct << *it;
 
    cout << endl;
 
    // выводим в шестнадцатеричном виде
    for ( vector < int >::const_iterator it = ivec.begin(); it != ivec.end(); ++it )
        cout << setw( 4 ) << hex << *it;
 
    return 0;
}
0
 Аватар для Leonman
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
27.09.2013, 23:48  [ТС]
alsav22,
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
int dec_to_hex(long int number, long int n, vector<int> hex_code)
{
    while (number >= 16)
    {
        if ((number - ((number / 16) * 16)) == 10)
            hex_code.push_back('A');
        if ((number - ((number / 16) * 16)) == 11)
            hex_code.push_back('B');
        if ((number - ((number / 16) * 16)) == 12)
            hex_code.push_back('C');
        if ((number - ((number / 16) * 16)) == 13)
            hex_code.push_back('D');
        if ((number - ((number / 16) * 16)) == 14)
            hex_code.push_back('E');
        if ((number - ((number / 16) * 16)) == 15)
            hex_code.push_back('F');
        if ((number - ((number / 16) * 16)) < 10)
            hex_code.push_back(number - ((number / 16) * 16));
        number /= 16;
    }
    if (n == 0)
     cout << "0";
    for(int i = hex_code.size()-1; i >= 0; i--)
        cout << hex_code[i];
    return 0;
}
Вот, что-то типо этого

Добавлено через 2 минуты
Dmitriy_M, немогли бы вы пояснить, что это значить vector<int> vec (5,0)? Конкретно меня интересует то что в фигурных скобках.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
27.09.2013, 23:48
Похоже автор путает символьный тип char со строковым.
0
 Аватар для Leonman
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
27.09.2013, 23:50  [ТС]
UranFlex, Я более чем был уверен, что такой способ, но мой интерес состоит в том, что-бы реализовать данную задачу без вспомогательных встроенных манипуляторов.
0
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
27.09.2013, 23:50
Цитата Сообщение от Leonman Посмотреть сообщение
что это значить vector<int> vec (5,0)?
вызов fill constructor
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
27.09.2013, 23:51
Leonman, а почему твоя функция называется dec_to_hex, хотя принимает переменную типа long. Неужели ты думаешь, что целочисленные переменные типа int long и.т.п. хранятся в десятичной системе???
0
 Аватар для Leonman
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
27.09.2013, 23:57  [ТС]
Kuzia domovenok, Я дал такое название функции, потому что она должа это выполнять, перевод из 10-чной в 16-чную.

Добавлено через 3 минуты
Dmitriy_M, а я могу заносить таким же образом не константную переменную?
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
28.09.2013, 00:14
Цитата Сообщение от Leonman Посмотреть сообщение
она должа это выполнять, перевод из 10-чной в 16-чную.
почему же она принимает число в двоичной системе?
0
 Аватар для Leonman
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
28.09.2013, 00:22  [ТС]
Kuzia domovenok, почему в двоичной? в десятичной
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
28.09.2013, 00:34
С каких это пор компьютер оперирует десятичными числами?
0
 Аватар для Leonman
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
28.09.2013, 00:37  [ТС]
Kuzia domovenok, непонимаю. Я передаю число в десятичной, а не в двоичной, допустить number = 200. Я передаю в функцию число 200, разве нет.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
28.09.2013, 00:43
все десятичные константы на этапе компиляции переводятся в двоичные коды.
Все вводимые пользователем числа. Преобразуются из десятичной системы в двоичную. А ты как думал работает cin>> ?? Его работа включает в себя получение строки из консоли, а затем "парсинг" строки, в зависимости от того, какой тип данных ожидает ввода. В конечном итоге, в ячейку памяти, где лежит переменная поступает именно что двоичное число. Хотя для программиста оно может означать хоть десятичное, хоть восьмеричное, хоть букву.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.09.2013, 00:49
Цитата Сообщение от Leonman Посмотреть сообщение
Я передаю в функцию число 200
Число 200 - оно и в десятичной, и в двоичной, и в шестнадцатиричной, и в восьмиричной есть, только записывается по разному. Можно и так написать: namber = 0xC8. Передаёте переменную int, которой присвоено значение 200.
Цитата Сообщение от Leonman Посмотреть сообщение
которая переводила бы число из десятичной системы счисления в шеснадцатиричную
Числа никуда не переводятся, переводится запись числа (представление).
0
 Аватар для Leonman
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
28.09.2013, 00:51  [ТС]
Kuzia domovenok, ладна, какое это имеет отношение к моему вопросу, а именно, можно ли записать в vector<int> char`ы.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.09.2013, 00:58
Цитата Сообщение от Leonman Посмотреть сообщение
а именно, можно ли записать в vector<int> char`ы.
Уже показали, что можно (3 пост).

Добавлено через 2 минуты
Только не забывайте, что char - это тоже число (код символа).
0
Заблокирован
28.09.2013, 01:07
Цитата Сообщение от alsav22 Посмотреть сообщение
Числа никуда не переводятся, переводится запись числа (представление)
это называется двоично-десятичные преобразователи. Они "зашиты" в процессор.
Цитата Сообщение от Leonman Посмотреть сообщение
Kuzia domovenok, ладна, какое это имеет отношение к моему вопросу, а именно, можно ли записать в vector<int> char`ы.
Можно. Кресты ты же Си совместимы. С помощью указателей по адресам присваивать каждый байтик, только зачем всё это...

Добавлено через 1 минуту
Leonman, Занялся бы для начала архитектурой вычислительных систем, таких вопросов не возникло бы.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2013, 01:07
Помогаю со студенческими работами здесь

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>)
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало интересно, как нужно изменить программу...

Конвертировать vector <int> в буфер char
Здравствуйте! Мне нужно заполнить буфер char из вектора int. Все работает, но как сделать так что бы буфер char заполнялся значениями через...

Char const* str to vector<unsigned int>
Добрый день! На visual studio 2012 не работает код: char const* str{ &quot;1 2 4 12 5123&quot; }; std::istringstream iss{ str }; ...

Нюансы синтаксиса: что означает запись vector<int*> a и vector <int>*a ?
Часто встречается вот такая запись: vector&lt;int&gt; a; это понятно что. Массив объектов int А вот что такое vector&lt;int*&gt; a; ...

set_difference(vector<pair<int,int>>, vector<int>>
Мне бы провести эту операцию по первому значению pair. Это реально сделать через STL или придется самому написать?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru