Advertisement
Guest User

123

a guest
Jan 18th, 2020
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.97 KB | None | 0 0
  1. /*
  2. 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)
  3. 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)
  4. 5.0 - Przerabiasz 2 zadanie żeby korzystało z funkcji i zmiennych dynamicznych
  5. */
  6.  
  7. #include <iostream> //Wyświetlanie tekstu i wpisywanie tekstu do konsoli
  8. #include <fstream>  //Zapis i odczyt z pliku
  9. #include <string>   //Obsługa zmiennej typu 'string'
  10. #include <vector>   //Obsługa 'wektorów'
  11.  
  12. using namespace std;
  13.  
  14. //Zad. 1.
  15. void SaveToFile(const string filename, vector<double> w);
  16. void ReadFromFile1(const string filename);
  17.  
  18. //Zad. 2. i 3.
  19. struct Pair
  20. {
  21.     double first;
  22.     double second;
  23.  
  24.     Pair(double a, double b)
  25.     {
  26.         first = a;
  27.         second = b;
  28.     }
  29. };
  30.  
  31. void SaveToFile(const string filename, vector<Pair> w);
  32. void ReadFromFile2(const string filename);
  33.  
  34.  
  35. int main()
  36. {
  37.     //Zadanie 1
  38.     const string filename1 = "f1.txt";  //stała typu string przechowująca nazwę pliku
  39.     vector<double> w{};
  40.  
  41.     cout << "Podaj 3 liczby:\n";
  42.     for (int i = 1; i <= 3; i++)
  43.     {
  44.         double temp;
  45.         cout << i << ".: "; cin >> temp;
  46.         w.push_back(temp);
  47.     }
  48.     SaveToFile(filename1, w);
  49.     ReadFromFile1(filename1);
  50.     cout << endl;
  51.  
  52.     //Zadanie 2 i 3
  53.     const string filename2 = "f2.txt";
  54.     vector<Pair> w2{};
  55.     cout << "Podaj 3 pary liczb:\n";
  56.     for (int i = 1; i <= 3; i++)
  57.     {
  58.         double t_first, t_second;
  59.         cout << i << ".:\ta) "; cin >> t_first; // '\t' to po prostu tabulator
  60.         cout << "\tb) "; cin >> t_second;
  61.         w2.push_back(Pair(t_first, t_second));
  62.     }
  63.     SaveToFile(filename2, w2);
  64.     ReadFromFile2(filename2);
  65.    
  66.     cout << endl;
  67.     system("pause");
  68.     return 0;
  69. }
  70.  
  71.  
  72. //  DEFINICJE FUNKCJI  //
  73.  
  74. void SaveToFile(const string filename, vector<double> w)
  75. {
  76.     ofstream file; //Tworzymy obiekt klasy ofstream. ('o', bo od 'out', czyli wyjście danych z programu do pliku.)
  77.     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.
  78.     if (file.good())
  79.     {
  80.         for (int i = 0; i < w.size(); i++)
  81.         {
  82.             file << w[i] << "\n";   //Zapisywanie danych do pliku identycznie jak wypisywanie danych w konsoli.
  83.         }
  84.  
  85.         cout << "Zapisano do pliku.\n";
  86.         file.close();
  87.     }
  88. }
  89.  
  90. void ReadFromFile1(const string filename)
  91. {
  92.     ifstream file;  //'i', bo 'in', czyli wejście danych z pliku do programu
  93.     file.open(filename.c_str());
  94.    
  95.     if (file.good())
  96.     {
  97.         cout << "Odczyt z pliku:\n";
  98.         for (int i = 0; i < 3; i++)
  99.         {
  100.             string temp;
  101.             file >> temp;   //Wczytanie kolejnego słowa z pliku do zmiennej 'temp'.
  102.             cout << i + 1 << " - " << temp << "\n";
  103.         }
  104.         file.close();
  105.     }
  106. }
  107.  
  108. void SaveToFile(const string filename, vector<Pair> w)
  109. {
  110.     ofstream file; //Tworzymy obiekt klasy ofstream. ('o', bo od 'out', czyli wyjście danych z programu do pliku.)
  111.     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.
  112.     if (file.good())
  113.     {
  114.         for (int i = 0; i < w.size(); i++)
  115.         {
  116.             file << w[i].first << " " << w[i].second << "\n";   //Zapisywanie danych do pliku identycznie jak wypisywanie danych w konsoli.
  117.         }
  118.  
  119.         cout << "Zapisano do pliku.\n";
  120.         file.close();
  121.     }
  122. }
  123.  
  124. void ReadFromFile2(const string filename)
  125. {
  126.     ifstream file;  //'i', bo 'in', czyli wejście danych z pliku do programu
  127.     file.open(filename.c_str());
  128.  
  129.     if (file.good())
  130.     {
  131.         cout << "Odczyt z pliku:\n";
  132.         for (int i = 0; i < 3; i++)
  133.         {
  134.             string t_first, t_second;
  135.             file >> t_first;    //Wczytanie kolejnego słowa z pliku do zmiennej 't_first'.
  136.             file >> t_second;   //Wczytanie kolejnego słowa z pliku do zmiennej 't_second'.
  137.             cout << "Para nr " << i + 1 << ": " << t_first << ", " << t_second << "\n";
  138.         }
  139.         file.close();
  140.     }
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement