C++ klasa ofstream obliczanie

0

Witam. Mam za zadanie utworzyć program który obliczy pole powierzchni i obwód prostokąta, oraz wyniki obliczeń zapisze w pliku
tekstowym wynik.txt. Wyniki muszą być każdy wynik wyświetlić w odrębnym wierszu:
a = 2, b = 4.5, P = 9.0, L = 13.0

Tutaj zamieszczam podstawę kodu

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    system("chcp 1250");
    ofstream plik;
    plik.open("dane.txt", ios::app);

    double a, b, p, P, L;
    plik.close();

    plik.open("wynik.txt", ios::app);

    L = 2 * a + 2 * b;
    P = a * b;

    plik <<"a=" << a << ", b=" << b << ", P=" << P << ", L=" <<L << endl;

    plik.close();

    return 0;
}

  

Zaczynam dopiero moją przygodę z programowaniem. Otóż mój problem polega na tym, że wszystko muszę zamieścić tylko i wyłącznie w klasie ofstream. Tak więc program czyta plik tekstowy z danymi np. 40 23.4 ( w każdej linijce po 2 dowolne liczby). Jak zrobić aby te liczby zapisane w wierszach wyświetlać w ten sposób (a = 2, b = 4.5, P = 9.0, L = 13.0) i zapisać do pliku wynik.txt.

Dziękuje za każdą pomoc pozdrawiam

ps./ program oblicza dane, zapisuje do pliku wynik.txt, jednak wyniki nie sa poprawne. jak zaradzić temu problemowi ? Jakie czytanie zastosować ?

pliki odczytywane są z pliku dane.txt w takim stanie :
12.3 45.6
13.7 23.4
10 33.4
123 987

Pogram Oblicza, zapisuje, ale przedstawione wyniki są zle. Macie jakieś pomysły ? Jakie czytanie zastosować aby działało poprawnie ?

0

plik<<"a="<<a<<", b="<<b<<", P=<<P<<", L="<<L<<endl;

0

Dziękuję za radę. Macie jeszcze jakieś pomysły ?

0

A co jest złego w jego pomyśle?

0

W plik dane.txt nawet jak umieszczę dwie liczby 10 10
To w pliku wynik.txt wychodzi:

 a=4217674, b=2359000, P=-1946258832, L=13153348

Powinno wyjść dla pola wynik 100, a dla obwodu na pewno nie liczba ujemna. Nie mogę sobie poradzić z tym. Kod taki jak podany w 1 poście.

0

Gdzie wczytujesz do zmiennych wartości z pliku?

0

Myślisz, że dane z pliku same się wczytają? Trzeba stworzyć obiekt ifstream do dane.txt i wczytać z niego dane do zmiennych.

0

a reszta programu idzie w dobrym kierunku ?

0
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    system("chcp 1250");
    ifstream odczyt;
    double a, b;
    odczyt.open("dane.txt", ios::in);
    odczyt.close();

    ofstream plik;
    double a, b, P, L;

    plik.open("wynik.txt", ios::app);

    L = 2 * a + 2 * b;
    P = a * b;

    plik << "a=" << a << ", b=" << b << ", P=" << P << ", L=" << L << endl;

    plik.close();
    return 0;
}

Próbuje, ale coś mi nie wychodzi :/ nie mam pojecia coś robię źle

0

nigdzie nie wczytujesz tych danych. Jedyne co robisz to otwierasz i zamykasz plik z danymi.

0

Gdzie wczytujesz? Wczytuj tak samo, jak w cinie czyli odczyt >> a >> b;

0
    ifstream odczyt;
    odczyt.open("dane.txt", ios::in);
    double a, b;
    odczyt >> a >> b;
    odczyt.close();

Macie racje nie czytałem liczb. Nie wiem czy dobrze to probuje robić ale dalej mi nie wychodzi zabardzo. Jeszcze coś kombinuję.

0

dziękuję wszystkim za pomoc bardzo mi pomogliście pozdrawiam.

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