Zapisanie char do pliku (ONP)

0

Witam.
Mam taki problem, iż chciałbym zapisać do pliku wyrażenie które poda użytkownik i wynik. Próbowałem przkonwertować char na int za pomocą atoi() lecz słabo wychodziło. Bardzo proszę o pomoc.

void ONP(){
    cout<<"UWAGA!!! WPROWADZANE WYRAZENIE ONP MUSI BYC POPRAWNE SKLADNIOWO INNACZEJ PROGRAM NIE BEDZIE POPRAWNIE DZIALAL!!! ZNAK '=' OZNACZA KONIEC WYRAZENIA"<<endl<<endl;
    cout<<"Podaj wyrazenie:np----->'77 3 + 5 2 - * ='"<<endl;
    int stos[256];
    int ws=0;
    int  a, b, w;
    char el[256];
    do
    {
        cin>>el;
        if(el[0] >= '0' and el[0] <= '9')
        {
            a = b = 0;
            do a = 10 * a + el[b++] - 48; while(el[b]);
            stos[ws++] = a;
        }
        else if(el[0] == '=') cout << stos[--ws] << endl;
        else
        {
            b = stos[--ws]; a = stos[--ws];

            switch(el[0])
            {
                case '+': w = a + b; break;
                case '-': w = a - b; break;
                case '*': w = a * b; break;
                case '/': w = a / b; break;
                case '^': w = 1;
                          while(b--) w *= a;
                          break;
            }

            stos[ws++] = w;
        }
    } while(el[0] != '=');
    for (int j=0;j<i;j++){
        cout<<tab[i];
    }
    cout<<"Czy chcesz zapisac dane??"<<endl;
    int x;
    cout<<"1: TAK"<<endl;
    cout<<"2: NIE"<<endl;
    cin>>x;
    if (x<1 or x>2){
        cout<<"Wybrales zly numer"<<endl;
    }
    else{
    ofstream NowyPlik;  
        switch(x){
            case 1:         
            NowyPlik.open("D:\\plik.txt", ios::app);
                NowyPlik<<el;
                NowyPlik.close();
            break;
            case 2:
            break;
}
}
}
0

Jaki char na int? Czy rozumiesz chociażby jeden wiersz z tego co podałeś?
NowyPlik<<el<<stos[ws+1]<<endl;

0
_13th_Dragon napisał(a):

Czy rozumiesz chociażby jeden wiersz z tego co podałeś?

Oczywiście.

Problem teraz jest taki że zapisuje mi do pliku ostatni znak jaki zapisałem i wynik (w tym przypadku =wynik).

0

To buforuj całość czyli el do string'a lub stringstream'a.

0

Działa.
Bardzo dziękuję za pomoc.
Pozdrawiam serdecznie.

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