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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
#1

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

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

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

Или можно использовать не vector, а что-то другое, но суть в том, что память должна будет выделяться денамическим путём.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2013, 23:18     Запихнуть в vector<int>, char?
Посмотрите здесь:

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

Применить accumulate к vector<pair<int, int>> - C++
Привет. Как можно применить accumulate к vector&lt;pair&lt;int, int&gt;&gt;?

Как в char запихнуть переменную? - C++
Здрасте, подскажите пожалуйста, возможно ли в char запихнуть свою переменную? Допустим int x = 123; char com = &quot;Asd&quot;+x+&quot;.&quot;; Ну, я...

Работа с Vector<int[2]> - C++
Доброго всем времени суток! Есть такой кусок кода: int tmpIntArr; std::vector&lt;int&gt; DataArray; DataArray = new vector&lt;int&gt;;...

Файл в vector<int> - C++
Как более удачно записать файл в вектор. С помощью чего открыт файл не имеет значения. Заранее спасибо.

Инициализация vector<char> - C++
Добрый день. Подскажи те, как инициализировать vector&lt;char&gt; символами - буквами алфавита.

std::vector<char**> - C++
Может конечно боян, но похожей темы я не нашел. И так в чем проблема... Пишу программу для работы со своей базой данных. Решил базу...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2013, 23:22     Запихнуть в vector<int>, char? #2
Зачем vector <int>? Опишите, как перевод делаете и зачем нужен вектор.
Dmitriy_M
1341 / 1222 / 112
Регистрация: 20.03.2009
Сообщений: 4,393
Записей в блоге: 11
27.09.2013, 23:27     Запихнуть в vector<int>, char? #3
Leonman, char и int интегральные типы, разница между ними лишь в размере.
C++
1
2
3
const char *str = "hello";
std::vector<int> vec (5,0);
vec[2] =  str[2];
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
27.09.2013, 23:37     Запихнуть в vector<int>, char? #4
Цитата Сообщение от 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.
UranFlex
131 / 129 / 21
Регистрация: 25.05.2013
Сообщений: 233
27.09.2013, 23:38     Запихнуть в vector<int>, char? #5
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;
}
Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
27.09.2013, 23:48  [ТС]     Запихнуть в vector<int>, char? #6
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)? Конкретно меня интересует то что в фигурных скобках.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
27.09.2013, 23:48     Запихнуть в vector<int>, char? #7
Похоже автор путает символьный тип char со строковым.
Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
27.09.2013, 23:50  [ТС]     Запихнуть в vector<int>, char? #8
UranFlex, Я более чем был уверен, что такой способ, но мой интерес состоит в том, что-бы реализовать данную задачу без вспомогательных встроенных манипуляторов.
Dmitriy_M
1341 / 1222 / 112
Регистрация: 20.03.2009
Сообщений: 4,393
Записей в блоге: 11
27.09.2013, 23:50     Запихнуть в vector<int>, char? #9
Цитата Сообщение от Leonman Посмотреть сообщение
что это значить vector<int> vec (5,0)?
вызов fill constructor
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
27.09.2013, 23:51     Запихнуть в vector<int>, char? #10
Leonman, а почему твоя функция называется dec_to_hex, хотя принимает переменную типа long. Неужели ты думаешь, что целочисленные переменные типа int long и.т.п. хранятся в десятичной системе???
Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
27.09.2013, 23:57  [ТС]     Запихнуть в vector<int>, char? #11
Kuzia domovenok, Я дал такое название функции, потому что она должа это выполнять, перевод из 10-чной в 16-чную.

Добавлено через 3 минуты
Dmitriy_M, а я могу заносить таким же образом не константную переменную?
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
28.09.2013, 00:14     Запихнуть в vector<int>, char? #12
Цитата Сообщение от Leonman Посмотреть сообщение
она должа это выполнять, перевод из 10-чной в 16-чную.
почему же она принимает число в двоичной системе?
Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
28.09.2013, 00:22  [ТС]     Запихнуть в vector<int>, char? #13
Kuzia domovenok, почему в двоичной? в десятичной
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
28.09.2013, 00:34     Запихнуть в vector<int>, char? #14
С каких это пор компьютер оперирует десятичными числами?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2013, 00:37     Запихнуть в vector<int>, char?
Еще ссылки по теме:

Unsigned char to vector - C++
{ vector&lt;byte&gt; resBuffer; unsigned char buffer; //string reply; //Receive a reply from the server if(...

Строка: Строку разбить на слова и слова запихнуть в массив char. - C++
Вобщем пока нужно: 1) строку разбить на слова и слова запихнуть в масив char. но у меня почему то вообще не то записывает в масив, хоча...

Строку разбить на слова и слова запихнуть в масив char - C++
Вобщем пока нужно: 1) строку разбить на слова и слова запихнуть в масив char. но у меня почему то вообще не то записывает в масив, хоча...

Окончание ввода в vector<int> по '\n' - C++
Как реализовать ввод данных с клавы в vector&lt;int&gt;, так, чтобы ввод оканчивался по нажатию Enter? Мой вариант int main() { int...

Сериализация и десериализация vector'а int'ов - C++
Имею вектор: std::vector&lt;int&gt; mig Нужно очень быстро сохранить его в файл, а потом восстановить из файла, пользуясь тем фактом, что это...


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

Или воспользуйтесь поиском по форуму:
Leonman
15 / 15 / 0
Регистрация: 17.06.2012
Сообщений: 266
28.09.2013, 00:37  [ТС]     Запихнуть в vector<int>, char? #15
Kuzia domovenok, непонимаю. Я передаю число в десятичной, а не в двоичной, допустить number = 200. Я передаю в функцию число 200, разве нет.
Yandex
Объявления
28.09.2013, 00:37     Запихнуть в vector<int>, char?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru