Advertisement
MeehoweCK

Untitled

Jul 23rd, 2018
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <conio.h>                      // zawiera funkcję getch()
  4.  
  5. using namespace std;
  6.  
  7. bool tak_nie()
  8. {
  9.     char wybor = '0';
  10.  
  11.     do
  12.     {
  13.         wybor = getch();                // funkcja pobierająca dowolny znak z klawiatury (jeden)
  14.     } while (wybor != 't' && wybor != 'T' && wybor != 'n' && wybor != 'N');
  15.  
  16.     if(wybor == 't' || wybor == 'T')
  17.     {
  18.         cout << "T" << endl;
  19.         return true;
  20.     }
  21.  
  22.     cout << "N" << endl;
  23.     return false;
  24. }
  25.  
  26. bool tworzenie_pliku(string nazwa, ofstream& plik)      // uchwyt do pliku musi być podawany do funkcji poprzez referencję (&), gdyż będziemy operować na oryginalnym obiekcie, a nie jego kopii!
  27. {
  28.     ifstream plik2;
  29.     plik2.open(nazwa.c_str());               // metoda c_str() jest konieczna, aby funkcja open() mogła otworzyć obiekt typu string
  30.  
  31.     bool flaga = false;                     // flaga będzie informować czy użytkownik postanowił utworzyć plik czy też nie
  32.     if (plik2.good())                       // jeżeli plik o podanej nazwie już istniał, flaga zostanie podniesiona
  33.     {
  34.         cout << "Plik o podanej nazwie juz istnieje. Czy chcesz go nadpisac? (T/N): ";
  35.         // wybór tak/nie
  36.         if(tak_nie())
  37.             flaga = true;
  38.     }
  39.  
  40.     else
  41.     {
  42.         cout << "Plik o podanej nazwie nie istnieje. Czy chcesz go utworzyc? (T/N): ";
  43.         // wybór tak/nie
  44.         if(tak_nie())
  45.             flaga = true;
  46.     }
  47.  
  48.     plik2.close();
  49.  
  50.     if(flaga)
  51.     {
  52.         plik.open(nazwa.c_str());           // utworzenie lub otwarcie pliku
  53.         return true;
  54.     }
  55.  
  56.     else
  57.         return false;
  58.  
  59. }
  60.  
  61. string pobierz_nazwe()
  62. {
  63.     cout << "Podaj nazwe pliku: ";
  64.     string nazwa;
  65.     cin >> nazwa;
  66.     nazwa += ".txt";
  67.     return nazwa;
  68. }
  69.  
  70. int main()
  71. {
  72.     ofstream plik;
  73.     if(tworzenie_pliku(pobierz_nazwe(), plik))
  74.     {
  75.         plik << "jakis tekst zapisany do pliku" << endl;
  76.         cout << "Plik zostal zapisany" << endl;
  77.         plik.close();
  78.     }
  79.  
  80.     else
  81.     {
  82.         cout << "Nie udalo sie otworzyc ani stworzyc nowego pliku" << endl;
  83.     }
  84.     return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement