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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Senri
0 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 10
#1

Читаем длинное число из файл. - C++

05.09.2010, 01:56. Просмотров 1101. Ответов 8
Метки нет (Все метки)

Доброго времени суток)
У меня такой вопрос. Как можно прочитать длинное число (превышающее стандартные типы данных) из файла в массив... Ну например число, которое не превышает 10^100... Пользуюсь потоками ifstream и ofstream для работы с файлами.
Заранее благодарен за ответ!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2010, 01:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Читаем длинное число из файл. (C++):

MSVC - читаем файл в 2х потоках - C++
Привет! Устал бороться с MSVC, может я чего-то не вижу, помогите найти ошибку (пример очень упрощенный) struct manager { ...

Длинное число - C++
Помогите пожалуйста составить код. Последовательные натуральные числа от a до b выписали одно за другим без пропусков, при этом...

Умножает число длинное на короткое - C++
Большое число должно хранится в массиве, а маленькое integer. Ответ должен хранится в массиве. Помогите изменить программу чтоб ответ...

Перевести длинное двоичное число в 10 систему - C++
Имеется длинное двоичное число, хранящееся в char. Необходимо перевести его в десятичную систему счисления. Как это можно сделать? ...

Почему выводит неправильное ,длинное число? - C++
я новичок,учу по книге.там задано #include <stdio.h> #include <iostream.h> int main(int nNumberofArgs, char* pszArgs) { int...

Найти самое длинное число в тексте - C++
Помогите исправить код пожалуйста. char text; int count=0,a={0}; for(int i=0;i<strlen(text);i++){ if(int(text)>int(text)) ...

8
ForEveR
В астрале
Эксперт С++
7984 / 4743 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.09.2010, 01:57 #2
Senri, В строку допустим. Или в сторону длинной арифметики смотреть
А если в массив - то имхо проще всего считать в строку, а затем итый элемент строки переводить в число и писать в итый элемент массива.
1
Senri
0 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 10
05.09.2010, 02:01  [ТС] #3
Да) это с длинной арифметикой связано)))
Если есть еще способы, то буду благодарен)
За совет спасибо))) Утром на свежую голову, попробую обязательно)
0
silent_1991
Эксперт С++
4993 / 3051 / 149
Регистрация: 11.11.2009
Сообщений: 7,038
Завершенные тесты: 1
05.09.2010, 02:02 #4
Senri,
Да просто создаёте чаровский массив, скажем, nember[100000] (hfpvth lkz ghbvthf), а затем из файла читаете так
C
1
fscanf(fin, "%s", number)
1
ForEveR
В астрале
Эксперт С++
7984 / 4743 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.09.2010, 02:05 #5
silent_1991, А проще все же std::string. Не надо о размере думать.
0
silent_1991
Эксперт С++
4993 / 3051 / 149
Регистрация: 11.11.2009
Сообщений: 7,038
Завершенные тесты: 1
05.09.2010, 02:07 #6
Lavroff,
Ну я просто имел ввиду Си
0
Senri
0 / 0 / 0
Регистрация: 01.04.2010
Сообщений: 10
05.09.2010, 02:08  [ТС] #7
Цитата Сообщение от Lavroff Посмотреть сообщение
silent_1991, А проще все же std::string. Не надо о размере думать.
Проблемка только в том возникнет, что на сайте где задачи проверяют String компилятором не распознается. И выдают сообщение "ошибка при компиляции", так что придется через родной char
0
fasked
Эксперт С++
4957 / 2537 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
05.09.2010, 09:10 #8
Цитата Сообщение от Senri Посмотреть сообщение
Пользуюсь потоками ifstream и ofstream для работы с файлами.
Проблемки не должно быть, потому что ifstream и ofstream тоже из STL. Видимо вы в чем ошиблись, пытаясь применить std::string.
0
Mencey
148 / 95 / 7
Регистрация: 22.07.2010
Сообщений: 425
05.09.2010, 09:35 #9
Можно также создать класс больших целых чисел, потом записать в этот класс число из файла.
У меня в книге такой класс есть, но переписывать несколько страниц лень. Класс работает примерно так:

C++
1
2
3
4
5
6
7
8
Number a(12);
Number b("343478568379456987234659873265872368876917659812756782357623587436873658925786");
string num;
ifstream fin("number.int");
fin >> num;
b = num.c_str();
b += a * b;
a = b*b*b;
1
05.09.2010, 09:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2010, 09:35
Привет! Вот еще темы с ответами:

Длинное число мешает сортировке массива - C++
1) задается массив 7*7 2) после сортировки первого столбца функцией: int sort1(int A, int i, int j) { int p, k, t; for (p=i-1;...

Дано длинное целое неотрицательное число - C++
Условие: Я правильно понимаю? Если у меня дано число 15643 (0011 1101 0001 1011), то я должен в двоичном представлении...

Неверно делит длинное число на короткое - C++
Подскажите, пожалуйста, в чем ошибка l_int l_int :: operator /(l_int a) { l_int res; int i, del, n10=10, r; ...

Возведение двойки в большую степень (длинное число) - C++
Добрый день всем, помогите пожалуйста разобраться с проблемой. необходимо возвести двойку в степень (в конечном итоге 2 в 512, например) ...


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

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

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