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

biginteger - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Класс и чтение из файла http://www.cyberforum.ru/cpp-beginners/thread272681.html
У моего задания номер 5. (оно связано с заданием 4) 4. Реализуйте класс, для которого оператор перегружен, чтобы выполнять чтение символов из указанной позиции файла. 5. Реализуйте ...
C++ Найти среднее арифметическое и геометрическое двух чисел Помогите, пожалуйста. Известно два целых числа, найти среднее арифметическое и геометрическое этих чисел. Вот пытался сделать, но не получилось... (( #include <windows.h> #include <iostream>... http://www.cyberforum.ru/cpp-beginners/thread272670.html
Ввод\вывод из файла C++
Подскажите в чем ошибка при чтении из файла и как правильно? #include "stdafx.h" #include <iostream> #include <string> #include <fstream> using namespace std; int _tmain(int argc, _TCHAR*...
error C2664: Display: невозможно преобразовать параметр 1 из 'int [5]' в 'int" C++
Добрый вечер! Прошу помочь, так как сам только начал изучать СПП (поэтому отнеситесь с пониманием)). #include <stdio.h> #include <iostream> #include <windows.h> using namespace std; //...
C++ Списки С++ http://www.cyberforum.ru/cpp-beginners/thread272644.html
все привет вот само задание Создать список слов. Рассортировать список (слова) по их длине. Слова с одинаковой длиной сортировать по двум первым буквам. я сделал всё только что то не могу...
C++ Список файлов в директории Директория задается с клавиатуры, не получается перекодировать char в wchar_t #include "stdafx.h" #include <iostream> #include<Windows.h> using namespace std; подробнее

Показать сообщение отдельно
cop
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 67
08.04.2011, 21:43  [ТС]
class BigInteger
{
public:
// максимальное количество цифр в числе
static const int MAXLEN = 100;

private:
// указатель, по которому будет расположен динамический массив с цифрами
char* ar;

public:
// конструктор по 32-х битному числу (по умолчанию 0)
BigInteger(int val = 0)
{
ar = new char[MAXLEN];
for (int i = 0; i < MAXLEN; i++)
{
ar[i] = (char) (val % 10);
val /= 10;
}
}

// конструктор по строке
BigInteger(const string& str)
{
ar = new char[MAXLEN];
for (int i = 0; i < MAXLEN; i++)
{
int k = (int) str.size() - 1 - i;
ar[i] = (k >= 0) ? str[k] - '0' : 0;
}
}

// конструктор копирования
BigInteger(const BigInteger& big)
{
ar = new char[MAXLEN];
memcpy(ar, big.ar, MAXLEN);
}

BigInteger& operator =(const BigInteger& big)
{
// отсекаем присваивание самому себе
if (this == &big)
return *this;

// копируем данные
memcpy(ar, big.ar, MAXLEN);

return *this;
}

~BigInteger()
{
delete ar;
}

// преобразование в строку
void ToString(string& res) const
{
int k = MAXLEN - 1;
while (k >= 0 && !ar[k])
k--;

if (k < 0)
{
res = "0";
return;
}

res.clear();
for (; k >= 0; k--)
res += '0' + ar[k];
}

friend ostream& operator <<(ostream& ostr, const BigInteger& big)
{
string str;
big.ToString(str);
ostr << str;
return ostr;
}

friend istream& operator >>(istream& istr, BigInteger& big)
{
string str;
istr >> str;
big = BigInteger(str);
return istr;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru