Brak całego wyniku w systemie dwójkowym - problem zapisem do pliku.

0

Witam, mam problem z zapisem do pliku. Przykład podaję 1, potem 1, wybieram +, ładnie się zapisuje, że 1+1=0 a powinno zapisać 1+1=01 jak to poprawić ?

#include <iostream>
#include <cstdio>
#include <fstream>
#include <string>

using namespace std;

void zamienDecNaBin(int x, int liczba1, int liczba2, char dzialanie) //funkcja zamieniajaca z dziesietnej na binarna
{
    if (!x) //dopóki x różne od zera
        return;
    zamienDecNaBin(x/2, liczba1, liczba2, dzialanie);
    cout << x%2;
    
    ofstream mojPlik; //tworzymy obiekt
    mojPlik.open("wynik.txt");
    if( mojPlik.good() == true )
    {
        mojPlik<<liczba1<<" "<<dzialanie<<" "<<liczba2<<" = "<<x%2;
        mojPlik.close();
    }
    else
        cout<< "Dostep do pliku zostal zabroniony!";
}
int main()
{
    int liczba1;
    int liczba2;
    int wynik;
    char dzialanie;
    cout <<"\nPodaj pierwsza liczbe: ";
    cin>>liczba1;
    cin.ignore();
    cout<<"\nPodaj druga liczbe: ";
    cin>>liczba2;
    cin.ignore();


    cout<<"\nWybierz dzialanie: + lub - lub *: ";
    cin>>dzialanie;
    cin.ignore();

    switch(dzialanie)
    {
        case '+':
        {
            wynik = liczba1 + liczba2;
            cout<<"Suma w binarnym wynosi: ";
            zamienDecNaBin(wynik, liczba1, liczba2, dzialanie);
            break;
        }
        case '-':
        {
            wynik = liczba1 - liczba2;
            cout<<"Roznica w binarnym wynosi: ";
            zamienDecNaBin(wynik, liczba1, liczba2, dzialanie);
            break;
        }
        case '*':
        {
            wynik = liczba1 * liczba2;
            cout<<"\nIloczyn w binarnym wynosi: ";
            zamienDecNaBin(wynik, liczba1, liczba2, dzialanie);
            break;
        }
        default:
            {
                cout<<"\nProgram nie obsluguje takiego dzialania.";
                break;
            }

    }
    cout<<"\n";
    system("PAUSE");
    return 0;
}

 
0

jak to poprawić ?

Zacząłbym od pozbycia się rekurencji, a w każdym kompletnie razie źle ją wykorzystujesz.

0

Nie chodzi mi o upiększanie kodu, tylko o zapisanie wyniku.

0

ok działa;d pomyliłem się bo 2 to w binarnym to 10 :d

1 użytkowników online, w tym zalogowanych: 0, gości: 1