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

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

Войти
Регистрация
Восстановить пароль
 
nokados
27 / 27 / 5
Регистрация: 30.04.2012
Сообщений: 132
#1

Преобразовать массив цифр в строку для вывода на cout<< - C++

26.11.2013, 22:39. Просмотров 279. Ответов 4
Метки нет (Все метки)

Реализую класс длинных чисел (только+). Числа представляю в виде массиве, где каждый элемент это цифра.
Но не могу понять, как его вывести. Я делал так:

Внутри класса перегрузил оператор
C++
1
2
3
4
5
6
7
8
9
10
operator char*() const
    {
        char res[Size+2];
        for (int i=0;i<Size;i++)
        {
            res[i]=(char)L[i];//В L хранится длинное число
        }
        res[Size+1]='\0';//Конец строки - нулевой байт
        return res;
    }
а в выводе прописал:

C++
1
out<<(char*)S;//out - отдельный поток, для вывода в файл. S - длинное число
После таких махинаций выводится 'ММММММММ ММММММММ' вместо 17
помогите! Может нужно перегружать << но как?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 22:39     Преобразовать массив цифр в строку для вывода на cout<<
Посмотрите здесь:

Расчитать значения переменных y и z по заданным формулам, используя для ввода/вывода cin и cout - C++
Расчитать значения переменных y и z по заданным формулам . Для ввода/вывод использовать объекты cin и cout. Определить разность между...

Расчитать значения переменных y и z по заданным формулам, используя для ввода/вывода cin и cout - C++
Расчитать значения переменных y и z по заданным формулам (табл. 1). Для ввода/вывода использовать объекты cin и cout. Определить...

Как преобразовать строку цифр в число? - C++
Как преобразовать строку цифр в число?

Массив строк преобразовать в строку - C++
как преобразовать массив строк в строку через разделитель, то есть дано: &quot;строка1&quot; &quot;строка2&quot; &quot;строка3&quot; а нужно получить &quot;строка1,...

ПреобразоваТЬ строку символов в массив - C++
#include &lt;cstdio&gt; #include &lt;cctype&gt; #include &lt;iostream&gt; #include &lt;cmath&gt; #include &quot;QTime&quot; void stuToArr(char s, int ar,...

Преобразовать массив символов в строку - C++
Правильна ли запись в strs , нужно что бы значения переменных последовательно были записаны в strs для получения примерно такой строки...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newbie666
Заблокирован
26.11.2013, 22:46     Преобразовать массив цифр в строку для вывода на cout<< #2
Цитата Сообщение от nokados Посмотреть сообщение
out<<(char*)S
тут ты выводишь указатель, а не его знаение
nokados
27 / 27 / 5
Регистрация: 30.04.2012
Сообщений: 132
26.11.2013, 23:14  [ТС]     Преобразовать массив цифр в строку для вывода на cout<< #3
Цитата Сообщение от nokados Посмотреть сообщение
Size
это максимальное количество цифр в числе

Добавлено через 2 минуты
Цитата Сообщение от newbie666 Посмотреть сообщение
тут ты выводишь указатель, а не его знаение
Изменил на
C++
1
out<<*(char*)S;
Теперь выводит большую точку

Добавлено через 24 минуты
Попробовал добавить перегрузку оператора вывода (<<)
C++
1
2
3
4
5
6
ostream &operator<<(ostream &output, const Longint &abc)
{
    for (int i=abc.rSize-1;i>=0;i--)
        output<<abc.L[i];
    return output;
}
и еще добавил rSize - реальная длина числа

на выводе просто
C++
1
out<<S;
Однако теперь не выводит ничего.
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,737
26.11.2013, 23:20     Преобразовать массив цифр в строку для вывода на cout<< #4
Цитата Сообщение от nokados Посмотреть сообщение
res[i]=(char)L[i];//В L хранится длинное число
у тебя там только цифры от 0 до 9 ?
если да то пиши так
C++
1
res[i]=(char)L[i]+'0';
все дело в том что значения попадают в непечатные символы
а код числа 0 это 0х30
1 0х31 и т.д.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2013, 23:37     Преобразовать массив цифр в строку для вывода на cout<<
Еще ссылки по теме:

Как преобразовать цикл для вывода сотрудников по отделам - C++
#include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;string.h&gt; #include &lt;windows.h&gt; #include &lt;conio.h&gt; using namespace std; ...

Как преобразовать строку в массив чисел? - C++
символы вводятся через пробел. Программа сканирует только до пробела и делит цифру на числа. Как сделать чтобы оно сканировало цифры...

формат вывода cout << hex - C++
Все привет, имеется небольшая проблемка, не могу придумать как победить.. cout &lt;&lt; uppercase &lt;&lt; hex &lt;&lt; charcode &lt;&lt; spacer; выводит...

странный порядок вывода cout - C++
Доброго времени суток. Есть шаблонный класс stack, и небольшая тестовая программка. Ожидаемый вывод после выполнения программы немного не...


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

Или воспользуйтесь поиском по форуму:
nokados
27 / 27 / 5
Регистрация: 30.04.2012
Сообщений: 132
26.11.2013, 23:37  [ТС]     Преобразовать массив цифр в строку для вывода на cout<< #5
Сделал без костылей перегрузкой <<
Все теперь работает (мой код выше)-до этого я неправильно изменял rSize
Yandex
Объявления
26.11.2013, 23:37     Преобразовать массив цифр в строку для вывода на cout<<
Ответ Создать тему
Опции темы

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