Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <conio.h> // zawiera funkcję getch()
- using namespace std;
- bool tak_nie()
- {
- char wybor = '0';
- do
- {
- wybor = getch(); // funkcja pobierająca dowolny znak z klawiatury (jeden)
- } while (wybor != 't' && wybor != 'T' && wybor != 'n' && wybor != 'N');
- if(wybor == 't' || wybor == 'T')
- {
- cout << "T" << endl;
- return true;
- }
- cout << "N" << endl;
- return false;
- }
- 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!
- {
- ifstream plik2;
- plik2.open(nazwa.c_str()); // metoda c_str() jest konieczna, aby funkcja open() mogła otworzyć obiekt typu string
- bool flaga = false; // flaga będzie informować czy użytkownik postanowił utworzyć plik czy też nie
- if (plik2.good()) // jeżeli plik o podanej nazwie już istniał, flaga zostanie podniesiona
- {
- cout << "Plik o podanej nazwie juz istnieje. Czy chcesz go nadpisac? (T/N): ";
- // wybór tak/nie
- if(tak_nie())
- flaga = true;
- }
- else
- {
- cout << "Plik o podanej nazwie nie istnieje. Czy chcesz go utworzyc? (T/N): ";
- // wybór tak/nie
- if(tak_nie())
- flaga = true;
- }
- plik2.close();
- if(flaga)
- {
- plik.open(nazwa.c_str()); // utworzenie lub otwarcie pliku
- return true;
- }
- else
- return false;
- }
- string pobierz_nazwe()
- {
- cout << "Podaj nazwe pliku: ";
- string nazwa;
- cin >> nazwa;
- nazwa += ".txt";
- return nazwa;
- }
- int main()
- {
- ofstream plik;
- if(tworzenie_pliku(pobierz_nazwe(), plik))
- {
- plik << "jakis tekst zapisany do pliku" << endl;
- cout << "Plik zostal zapisany" << endl;
- plik.close();
- }
- else
- {
- cout << "Nie udalo sie otworzyc ani stworzyc nowego pliku" << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement