Program 10 Program zapisujący wprowadzany z klawiatury tekst do
Transkrypt
Program 10 Program zapisujący wprowadzany z klawiatury tekst do
Program 10 Program zapisujący wprowadzany z klawiatury tekst do pliku tekstowego. Struktura linii pliku powinna odpowiadać wprowadzanemu tekstowi, a małe litery występujące we wprowadzanym tekście powinny być zamienione na wielkie. #include <iostream> #include <fstream> #include <cctype> using namespace std; int main() { char linia[200]; ofstream strumien_do_zapisu; cin.get(linia,200); cout<<linia<<endl; for(int i=0;i<200;i++) { if(islower(linia[i])) linia[i]=toupper(linia[i]); } strumien_do_zapisu.open("tekst.txt",ios::out); strumien_do_zapisu<<linia; strumien_do_zapisu.close(); system ("pause"); } Omówienie programu Definicja tablicy dwustuelementowej typu char o nazwie linia: char linia[200]; Definicja strumienia typu ofstream (strumień takiego typu umoŜliwia zapis do pliku – więcej o zapisie do plików w przykładzie 7) o nazwie strumien_do_zapisu: ofstream strumien_do_zapisu; Chcemy wprowadzić z klawiatury tekst i umieścić go w tablicy linia. Niestety nie moŜemy tego zrobić tak: cin>>linia; PoniewaŜ w ten sposób moŜemy zapisać tylko napis nie zawierający spacji. A zatem jeŜeli wpiszemy z klawiatury: Mama Tomka to w tablicy linia znajdzie się tylko słowo Mama. Aby wczytać do tablicy cały tekst musimy uŜyć funkcji get. get(gdzie,długość) Funkcja get słuŜy do wczytania ze strumienia wejściowego większej ilości bajtów. Wczytane bajty (znaki) umieszczane są w zmiennej gdzie (pierwszym argumencie funkcji, będącym tablicą znaków). Liczba wczytanych znaków nie moŜe być większa niŜ długość (drugi argument funkcji; zazwyczaj nadaje mu się wartość taką jak długość tablicy). A zatem jeŜeli w naszym programie chcemy wczytać z klawiatury tekst do tablicy linia robimy to następująco (cin – strumień związany z klawiarurą): cin.get(linia,200); (200 – rozmiar tablicy linia). Po wczytaniu tekstu do tablicy wypisujemy jej zawartość na ekranie: cout<<linia<<endl; Następnie w pętli for sprawdzamy które elementy tablicy linia są małymi literami (przy uŜyciu funkcji islower – funkcja ta zwraca prawdę jeŜeli jej argument jest małą literą). Małe litery w tablicy zamieniamy na wielkie przy uŜyciu funkcji toupper (funkcja ta zmienia małą literę będącą jej argumentem na wielką i zwraca tą literę). Funkcje islower i toupper znajdują się w bibliotece cctype – patrz trzecia linijka programu. Po zamianie małych liter na wielkie otwieramy strumien_do_zapisu) plik tekst.txt w trybie do zapisu: (przy uŜyciu strumienia strumien_do_zapisu.open("tekst.txt",ios::out); Następnie wykorzystując strumień zapisujemy w otwartym pliku zawartość tablicy linia. strumien_do_zapisu<<linia; Na końcu zamykamy strumień: strumien_do_zapisu.close();