Почему не могу перевести в другие системы счисления?

#include <iostream>
#include <cstdlib>
#include <locale>
#include <iomanip>
using namespace std;

int main()
{   
    setlocale(LC_ALL, "Russian");
    char ss;
    do {

        cout << "Введите арифметическое действие и число" << endl;

        float x, y, r;
        char o;

        cin >> x;
        cin >> o;
        cin >> y;

        switch (o)
        {
        case '+':
            r = x + y;
                break;
        case '-':
            r = x - y;
            break;
        case '/':
            y = x / y;
            break;
        case '*':
            y = x * y;
            break;
        }

        "cout.unsetf(ios::dec);"
        "cout.setf(ios::oct); "
        cout << x << o << y << " = " << r << endl;                        

        cout << " Продолжаем считать? y/n" << endl;
        cin >> ss;
    } while (ss == 'y');

Через "cout << hex << r << endl;" тоже не переводит в другую любую систему счисления, хотя если создать новый код, без моего "калькулятора", то эти способы прекрасно переводят в другие СС. Через флаги тоже не получается. Что я делаю не так?


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

Автор решения: AlexGlebe

Вы команды вложили в кавычки. А это ничего не выполнит. Это будут просто строчки. Вывод в другой системе исчисления для типа float не работает. Переведите число в тип int. Не до конца дописали операции '*' , '/'. Результат храните в переменной r.

#include <iostream>
#include <cstdlib>
#include <locale>
#include <iomanip>
using namespace std;



int main()
{   setlocale(LC_ALL, "Russian");
char ss;
    do {

        cout << "Введите арифметическое действие и число" << endl;

        float x, y, r;
        char o;

        cin >> x;
        cin >> o;
        cin >> y;

        switch (o)
        {
        case '+':
            r = x + y;
                break;
        case '-':
            r = x - y;
            break;
        case '/':
            r = x / y;
            break;
        case '*':
            r = x * y;
            break;

        }


        cout.unsetf(ios::dec);
        cout.setf(ios::oct); 
        cout << x << o << y << " = " << r << endl;
        cout << int(x) << o << int(y) << " = " << int(r) << endl;


        cout << " Продолжаем считать? y/n" << endl;
        cin >> ss;
    } while (ss == 'y');}
→ Ссылка