Zapis/odczyt i przeliczanie jednostek c++

Witam , mam do napisania program w c++ ,który ma za zadanie pobrać wartość z pliku, przeliczyć je z użyciem funkcji zewnętrznych z metrów na jednostki angielskie i zapisać do pliku kolejnego, w przypadku kiedy plik wsadowy nie istnieje ma być o tym odpowiednia informacja
Niby wiem jak odczytać , zapisać dane z pliku czy też przeliczyć jednostki w c++ ale jak to połączyć w spójną całość ?

A co już masz zrobione ? Dawno w C++ nie programowałem, ale może Cię naprowadzę, bo myśleć jeszcze potrafię :wink:

Wyniki dla kolejno:
11113249.395
abcd123
150
<pusto>
brak pliku

Głównie to inspirowałem się kodem z filmików pana Zelenta z kanału pasja informatyki o zapisie i odczycie plików w c++ , tylko nie umiem pobranych danych z pliku zmodyfikować tak aby przeliczyły jednostki a potem zapisały wyniki w drugim pliku

To łap, może coś się nauczysz (napisałem pod Linuxem, ale pod Windows też chyba powinno działać):

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

/* FUNKCJA przeliczająca metry na mile i zwracająca wynik */
double mtomi(double m) {
    return m * 0.00062137119223733;
}
/* KONIEC FUNKCJI */

int main()
{

    ifstream infile("wsad.txt"); //zainicjowanie pliku tylko do odczytu
    
    if (infile.fail()) //sprawdzenie, czy istnieje
        {
            //jeżeli nie to wypisanie błędu i zakończenie programu
            cerr << "Błąd: Nie znaleziono pliku wsadowego, przerywam!" << endl;
            exit(1);
        } else if (infile.peek() == EOF) { //sprawdzenie, czy plik jest pusty
            cerr << "Błąd: Plik wsadowy istnieje, ale jest pusty, przerywam!" << endl;
            exit(1);
        }

    double m; //zadeklarowanie zmiennej typu precyzyjnego (metry)
    infile >> m; //odczyt pliku i podstawienie wartości pod zmienną
    cout.precision(10); //dla poprawienia czytelności, przy większych liczbach (wyświetlanie z precyzją do 10)
    cout << m << " m.";
    
    infile.close(); //zamknięcie pliku
    
    double miles = mtomi(m); //zainicjowanie funkcji i podstawienie jej wyniku pod zmienną miles (mile)
    cout << " to " << miles << " mi." << endl << "(wyniki zapisano w pliku wyniki.txt)" << endl;

    ofstream outfile("wyniki.txt", ios::app); //zainicjowanie pliku w trybie do zapisu przyrostowego
    outfile << m << ";" << miles << endl; //zapisanie wyników w pliku w postaci metry;mile
    
    outfile.close(); //zamknięcie pliku
    
    return 0;
}
1 polubienie

dziękuje , kod działa , teraz analizując linijkę po linijce nie było to takie trudne :smiley: