Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 3.0 - Vector do którego wpisujesz w konsoli 3 liczby typu double, zapisujesz te trzy liczby do pliku tekstowego i potem wypisujesz je z tego pliku do konsoli (na 3.0)
- 4.0 - Robisz vector który ma mieć dwa elementy typu para (coś takiego) i też te dwa elementy wpisujesz w konsoli, dalej robisz to samo co w pierwszym (na 4.0)
- 5.0 - Przerabiasz 2 zadanie żeby korzystało z funkcji i zmiennych dynamicznych
- */
- #include <iostream> //Wyświetlanie tekstu i wpisywanie tekstu do konsoli
- #include <fstream> //Zapis i odczyt z pliku
- #include <string> //Obsługa zmiennej typu 'string'
- #include <vector> //Obsługa 'wektorów'
- using namespace std;
- //Zad. 1.
- void SaveToFile(const string filename, vector<double> w);
- void ReadFromFile1(const string filename);
- //Zad. 2. i 3.
- struct Pair
- {
- double first;
- double second;
- Pair(double a, double b)
- {
- first = a;
- second = b;
- }
- };
- void SaveToFile(const string filename, vector<Pair> w);
- void ReadFromFile2(const string filename);
- int main()
- {
- //Zadanie 1
- const string filename1 = "f1.txt"; //stała typu string przechowująca nazwę pliku
- vector<double> w{};
- cout << "Podaj 3 liczby:\n";
- for (int i = 1; i <= 3; i++)
- {
- double temp;
- cout << i << ".: "; cin >> temp;
- w.push_back(temp);
- }
- SaveToFile(filename1, w);
- ReadFromFile1(filename1);
- cout << endl;
- //Zadanie 2 i 3
- const string filename2 = "f2.txt";
- vector<Pair> w2{};
- cout << "Podaj 3 pary liczb:\n";
- for (int i = 1; i <= 3; i++)
- {
- double t_first, t_second;
- cout << i << ".:\ta) "; cin >> t_first; // '\t' to po prostu tabulator
- cout << "\tb) "; cin >> t_second;
- w2.push_back(Pair(t_first, t_second));
- }
- SaveToFile(filename2, w2);
- ReadFromFile2(filename2);
- cout << endl;
- system("pause");
- return 0;
- }
- // DEFINICJE FUNKCJI //
- void SaveToFile(const string filename, vector<double> w)
- {
- ofstream file; //Tworzymy obiekt klasy ofstream. ('o', bo od 'out', czyli wyjście danych z programu do pliku.)
- file.open(filename.c_str()); //filename.c_str(), czyli konwertowanie stringa na tablicę charów bo metoda 'open' chce mieć jako argument podaną tablicę charów (const char*), a nie const string.
- if (file.good())
- {
- for (int i = 0; i < w.size(); i++)
- {
- file << w[i] << "\n"; //Zapisywanie danych do pliku identycznie jak wypisywanie danych w konsoli.
- }
- cout << "Zapisano do pliku.\n";
- file.close();
- }
- }
- void ReadFromFile1(const string filename)
- {
- ifstream file; //'i', bo 'in', czyli wejście danych z pliku do programu
- file.open(filename.c_str());
- if (file.good())
- {
- cout << "Odczyt z pliku:\n";
- for (int i = 0; i < 3; i++)
- {
- string temp;
- file >> temp; //Wczytanie kolejnego słowa z pliku do zmiennej 'temp'.
- cout << i + 1 << " - " << temp << "\n";
- }
- file.close();
- }
- }
- void SaveToFile(const string filename, vector<Pair> w)
- {
- ofstream file; //Tworzymy obiekt klasy ofstream. ('o', bo od 'out', czyli wyjście danych z programu do pliku.)
- file.open(filename.c_str()); //filename.c_str(), czyli konwertowanie stringa na tablicę charów bo metoda 'open' chce mieć jako argument podaną tablicę charów (const char*), a nie const string.
- if (file.good())
- {
- for (int i = 0; i < w.size(); i++)
- {
- file << w[i].first << " " << w[i].second << "\n"; //Zapisywanie danych do pliku identycznie jak wypisywanie danych w konsoli.
- }
- cout << "Zapisano do pliku.\n";
- file.close();
- }
- }
- void ReadFromFile2(const string filename)
- {
- ifstream file; //'i', bo 'in', czyli wejście danych z pliku do programu
- file.open(filename.c_str());
- if (file.good())
- {
- cout << "Odczyt z pliku:\n";
- for (int i = 0; i < 3; i++)
- {
- string t_first, t_second;
- file >> t_first; //Wczytanie kolejnego słowa z pliku do zmiennej 't_first'.
- file >> t_second; //Wczytanie kolejnego słowa z pliku do zmiennej 't_second'.
- cout << "Para nr " << i + 1 << ": " << t_first << ", " << t_second << "\n";
- }
- file.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement