Другие языки программирования и технологии

Помогите сделать задачу на C++.

Нужно решить вот такую задачку: Составить программу, суммирующую два натуральных n-значных числа, где n > 20.
Вот никак не могу сделать. Как ввести 20-значное число, если оно не помещается в тип данных int? Помогите пожалуйста
#include <iostream>
#include <string>
#include <stack>
#include <string_view>
using namespace std;
char next(char a, char b, bool& flag) {
auto box = a + b - '0';
if (flag) ++box;
if (box > '9') {
--box;
flag = true;
box -= '9';
box += '0';
} else flag = false;
return box;
}
string sum(string_view sa, string_view sb) {
stack<char> xa, xb, xs;
auto flag = false;
for (auto x : sa) xa.push(x);
for (auto x : sb) xb.push(x);
while (!xa.empty() || !xb.empty()) {
auto a = xa.empty() ? '0' : xa.top();
if (!xa.empty()) xa.pop();
auto b = xb.empty() ? '0' : xb.top();
if (!xb.empty()) xb.pop();
auto sign = next(a, b, flag);
xs.push(sign);
}

string box;
if (flag) box += "1";
while (!xs.empty()) {
box += xs.top();
xs.pop();
}
return box;
}
int main() {
string a, b;
cout << "a: ";
cin >> a;
cout << "b: ";
cin >> b;
auto s = sum(a, b);
cout << "s: " << s << endl;
system("pause");
}
Ашраф Хазалах
Ашраф Хазалах
66 505
Лучший ответ
cppstudio.com/post/5036/

А вообще гуглим - "длинная арифметика си++"
Рифкат Закиров
Рифкат Закиров
15 408
20 знаком максимум для одного числа (если только не подразумевается составное число)

unsigned long long к вашим услугам

а вообще гуглите чаще, запрос "типы данных c++" удовлетворил бы ваш вопрос целиком первой ссылкой