Как уже после получения числа сообщить программе в какой системе счисления оно находится? C++

введите сюда описание изображения

Делаю задание из книги Страуструпа. Определить для себя систему счисления кое-как получается по префиксам, но как сообщить это программе и потом переводить в то что нужно?


Ответы (2 шт):

Автор решения: nyekitka
#include <string>
#include <iostream>

int main () {
    std::string s;
    int ans;
    std::cin >> s;
    if (s.size() > 1 && s[0] == '0' && s[1] == 'x')
        ans = std::stoi(s, nullptr, 16);
    else if (s.size() && s[0] == '0')
        ans = std::stoi(s, nullptr, 8);
    else
        ans = std::stoi(s);
    return 0;
}

Для long long используйте std::stoll вместо std::stoi.

→ Ссылка
Автор решения: Harry

Вот уж воистину — зачем просто, если можно сложно?

Решение nyekitka можно смело заменить на

int main () {
    std::string s;
    int ans;
    std::cin >> s;
    ans = std::stoi(s, nullptr, 0);

Убедитесь сами...

А вот для вывода строки в скобках — да, нужно смотреть, какие первые два символа.

→ Ссылка