Как уже после получения числа сообщить программе в какой системе счисления оно находится? 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);
А вот для вывода строки в скобках — да, нужно смотреть, какие первые два символа.
