Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.

Podobne dokumenty
1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Programowanie w językach

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Operacje wejścia/wyjścia (odsłona druga) - pliki

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Program 22. #include <iostream> using namespace std; struct Osoba { string Imie; string Nazwisko; char Plec; int RokUr; };

Program 14. #include <iostream> #include <ctime> using namespace std;

C++ - [3-5] Pliki i strumienie w C++

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

Wykład 2 Operacje wejściawyjścia. Ewa Gajda

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wprowadzenie do programowania i programowanie obiektowe

Spis treści OBSŁUGA PLIKÓW W JĘZYKU C++ Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Programowanie systemów informatycznych laboratorium. Ćw. 3: Akwizycja danych. RS 232 cd.

Klasa iostream... 1 Klasy ofstream, ifstream Struktura FILE... 8

Pliki wykład 2. Dorota Pylak

Programowanie i struktury danych

Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi.

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

Pliki wykład. Dorota Pylak

Pliki wykład 2 -przekazywanie strumieni do funkcji -funkcje get(char &) i getline(string)

Operacje na plikach (niskiego poziomu) < IO.H >

1 Strumienie. 2 Pliki. 2.1 Zapis do pliku tekstowego. Programowanie w j zyku C - Adam Krechowicz, Daniel Kaczmarski

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

Programowanie w językach wysokiego poziomu

Pliki wykład. Dorota Pylak

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Biblioteka standardowa - operacje wejścia/wyjścia

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Pliki. Informacje ogólne. Obsługa plików w języku C

Wykład 9 Pliki cz.3 (getline(string)) Typ wyliczeniowy enum

Wejście wyjście strumieniowe

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Część 4 życie programu

XV. Wskaźniki Odczytywanie adresu pamięci istniejących zmiennych Wskaźniki pierwsze spojrzenie.

Języki programowania. Karolina Mikulska-Rumińska Pokój 573, tel Konsultacje wtorek 9-10.

Wstęp do programowania. Dariusz Wardecki, wyk. X

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

4. Wyrzuć wyjątek jeśli zmienna ist nie istnieje bloki: try, catch i wyrzucanie wyjątku

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Podstawy Programowania Podstawowa składnia języka C++

Funkcje zawarte w bibliotece < io.h >

Pliki. Informacje ogólne. Obsługa plików w języku C

Struktura pliku projektu Console Application

Funkcje zawarte w bibliotece < io.h >

Aby uzyskać zaliczenie w pierwszym terminie (do 30 stycznia 2018) rozliczyć trzeba co najmniej 8 projektów, po 4 z każdej z części: C++ oraz Python.

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Język C++ wykład VIII

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

PDF stworzony przez wersję demonstracyjną pdffactory Pro Program 15

Inicjacja tablicy jednowymiarowej

Zaawansowane programowanie w języku C++ Biblioteka standardowa

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 9

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

I - Microsoft Visual Studio C++

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Techniki Programowania wskaźniki

Zasady programowania Dokumentacja

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Podstawy i języki programowania

Operacje wejścia/wyjścia odsłona pierwsza

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

po ostatnim dopisaniu na standardowe wyjście (cout) powinien zostać wyprowadzony komunikat "Skonczylem";

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

Języki programowania imperatywnego

C++ - [1-3] Debugowanie w Qt Creator

Programowanie Procedurale. Pliki w języku C++

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

Język C++ Różnice między C a C++

7 Przygotował: mgr inż. Maciej Lasota

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Pytania sprawdzające wiedzę z programowania C++

Argumenty wywołania programu, operacje na plikach

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Podstawy programowania skrót z wykładów:

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

Podstawy programowania w C++

Programowanie i struktury danych

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Przekazywanie argumentów wskaźniki

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Wskaźniki do funkcji. Wykład 11. Podstawy programowania ( język C ) Wskaźniki do funkcji (1) Wskaźniki do funkcji (2)

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Transkrypt:

Program 7 Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku. #include<iostream> #include<fstream> using namespace std; int main() { fstream str; char nazwa_pliku[20]; char linia_pliku[200]; cout<<"podaj nazwe pliku: "<<endl; cin>>nazwa_pliku; str.open(nazwa_pliku,ios::out ios::app); str<<"*"; cout<<"gwiazdka dopisana"<<endl; str.open(nazwa_pliku,ios::in); cout<<"czytam z pliku"<<endl; while(!str.eof()) { str.getline(linia_pliku,200); cout << linia_pliku << endl; }; system("pause"); }

Omówienie programu Definicja strumienia o nazwie str: fstream str; Kilka słów o strumieniach Strumienie są niezbędne jeŝeli chcemy czytać i zapisywać dane z/do plików. Istnieją 3 typy strumieni: ofstream - strumień przeznaczony do zapisu do plików ifstream - strumień przeznaczony do odczytu z plików fstream - strumień umoŝliwiający obie powyŝsze czynności Definicja strumienia wygląda następująco: typ_strumienia nazwa_strumienia; Z zatem powyŝej zdefiniowany jest strumień umoŝliwiający zapis i odczyt z pliku (typ: fstream) o nazwie str. Mamy zdefiniowany strumień o nazwie str. Musimy teraz związać strumień z konkretnym plikiem i otworzyć ten plik. SłuŜy do tego instrukcja: nazwa_strumienia.open("nazwa_pliku",opcjonalny_tryb_otwarcia_pliku); Istnieje kilka opcjonalnych trybów otwarcia pliku: ios::in - otwarcie pliku do czytania (input) ios::out - otwarcie pliku do pisania (output) ios::ate - otwarcie pliku z ustawieniem się na końcu jego zawartości (at end) ios::app - otwarcie do dopisywania na końcu pliku (append) ios::trunc - otwarcie, a jeśli plik istnieje - skasowanie umieszczonej w nim treści (truncate) ios::binary - tryb ma być binarny (domyślnie przyjmowany jest tekstowy) Szczegółowy opis trybów otwarcia pliku (oraz instrukcji związanych z plikami) moŝna znaleźć na stronie: http://math.uni.lodz.pl/~polrola/strony/0607l-podyplom/o_plikach.html

JeŜeli np. chcemy otworzyć plik dane.txt w trybie do odczytu (będziemy czytać dane z pliku) moŝemy to zrobić w następujący sposób: ifstream a; a.open( dane.txt,ios::in) Pierwsza linia to definicja strumienia (o nazwie a) przeznaczonego do odczytu z pliku (dlatego typ ifstream). Druga linijka to otwarcie przy uŝyciu strumienia a pliku dane.txt w trybie do czytania (ios::in). W omawianym programie mamy: cout<<"podaj nazwe pliku: "<<endl; cin>>nazwa_pliku; A zatem wprowadzamy nazwę pliku (samą nazwę pliku+rozszerzenie podajemy wtedy gdy plik znajduje się w tym samym katalogu w którym znajduje się omawiany program, jeŝeli plik taki nie istnieje zostanie utworzony) z klawiatury i zapisujemy ją w tablicy znaków (typ char) o nazwie nazwa_pliku (druga linijka programu to char nazwa_pliku[20]; czyli definicja dwudziestoelementowej tablicy typu char o nazwie nazwa_pliku). Następna linijka w programie to: str.open(nazwa_pliku,ios::out ios::app); Czyli wykorzystujemy zdefiniowany wcześniej strumień o nazwie str do otwarcia pliku o nazwie zapisanej w tablicy nazwa_pliku. Plik otwieramy w trybie do zapisu (ios::out) z dopisywania na końcu pliku (ios::app). Wykorzystaliśmy przy tym moŝliwość łączenia trybów otwarcia przy pomocy operatora sumy bitowej " ". Następna linijka programu to: str<<"*"; Co to oznacza? ZauwaŜmy, Ŝe powyŝsza instrukcja przypomina instrukcję: cin<<"*"; Instrukcja ta powoduje wypisanie gwiazdki * na ekranie (wysłanie gwiazdki na ekran). Dzieje się tak dlatego, Ŝe wykorzystany jest w niej strumień cin związany z ekranem. W instrukcji: str<<"*";

mamy strumień związany z pewnym plikiem (plikiem o nazwie zapisanej w tablicy nazwa_pliku). A zatem gwiazdka * zostanie przesłana do tego pliku. PoniewaŜ plik jest otwarty w trybie dopisywania do końca pliku (patrz wyjaśnienie powyŝej) zatem gwiazdka zostanie dopisana na końcu pliku. Po wykonaniu powyŝszej operacji na pliku zamykamy strumień czyli kończymy prace z plikiem: Po zakończeniu pracy z plikiem strumień moŝe zostać ponownie uŝyty do pracy z innym plikiem pod warunkiem, Ŝe będzie uŝyty do takich celów, na jakie pozwala jego definicja (czyli np. strumienia typu ofstream nie moŝemy wykorzystać do odczytu pliku). W naszym programie ten sam strumień jest wykorzystany ponownie: str.open(nazwa_pliku,ios::in); A zatem wykorzystujemy ponownie zdefiniowany wcześniej strumień o nazwie str do otwarcia pliku o nazwie zapisanej w tablicy nazwa_pliku. Tym razem plik otwieramy w trybie do odczytu (ios::in). Następnie na ekran wypisywany jest komunikat czytam z pliku: cout<<"czytam z pliku"<<endl; Dalej mamy w programie następującą pętle: while(!str.eof()) { }; Pętla jest wykonywana dopóki nie dojdziemy do końca pliku otwartego przy pomocy strumienia str (eof end of file). A zatem dopóki nie dojdziemy do końca pliku otwartego przy pomocy strumienia str wykonywane są instrukcje: str.getline(linia_pliku,200); cout << linia_pliku << endl; Pierwsza instrukcja:

str.getline(linia_pliku,200); to pobranie z pliku otwartego przy pomocy strumienia str linii tekstu i zapisanie jej w tablicy o nazwie linia_pliku o rozmiarze 200 (tablica ta została zdefiniowana wcześniej patrz instrukcja char linia_pliku[200]; na początku programu). Po umieszczeniu zawartości jednej linii pliku w tablicy o nazwie linia_pliku zawartość tablicy jest wypisywana na ekran: cout << linia_pliku << endl; Następnie jest wypisywana następna linia z pliku, itd. Jak juŝ wiemy wypisywanie kończy się wtedy gdy dojdziemy do końca pliku (czyli gdy wypiszemy wszystkie jego linie). Przed ostatnia instrukcja programu to: Czyli zamknięcie strumienia str.