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();