Darbas su failais c kalboje
5 (100%) 1 vote

Darbas su failais c kalboje

DARBAS SU FAILAIS C++ KALBOJE

Programos struktūra

Atkreiptinas dėmesys į tokias C++ kalbos ypatybes:

• yra tik vienas programų struktūrizavimo būdas. Tai skaidymas į funkcijas (visi programų blokai vadinami vienodai – funkcijomis);

• pagrindinę programos dalį atitinka pagrindinė funkcija, kuri žymima vardu main;

• identifikatoriuose (varduose) didžiosios ir mažosios raidės traktuojamos skirtingai;

• programos elementų (kintamųjų, struktūrų, funkcijų) aprašai gali būti bet kurioje programos vietoje. Svarbu, kad elementas prieš jį naudojant jau būtų apibrėžtas;

• programos elementų aprašuose plačiai vartojami funkcijų prototipai (prototipas – tai tik funkcijos antraštė);

• C++ kalboje yra nedidelis standartizuotų operatorių skaičius, tačiau yra daug įvairių funkcijų bibliotekų;

• kreipiantis į kintamuosius ir struktūras, plačiai vartojamos rodyklės (rodyklė – tai kintamasis, kuris įsimena adresą);

• daugelio tipų duomenis galima interpretuoti įvairiai (pvz., į baite užrašytą informaciją galima žiūrėti kaip į simbolį arba kaip į sveikąjį skaičių).

Tipinė C++ programos (programos failo) struktūra yra tokia:

/* Pirminio apdorojimo instrukcijos */

/* Globaliųjų elementų aprašai */

/* Funkcijų prototipai (vartotojo sukurtų funkcijų antraštės) */

main()

{

/* Pagrindinės funkcijos tekstas – sakinių visuma */

}

/* Vartotojo sukurtų funkcijų tekstai */

Čia programos struktūros apraše yra panaudotos tokios C++ kalbos sintaksinės konstrukcijos:

• komentarai – tai paaiškinamasis tekstas, kurio ribos žymimos simbolių poromis /* ir */. Leistinas ir kitas komentarų pavidalas. Parašius eilutėje du pasvirusius brūkšnius //, toliau esantis tekstas iki eilutės pabaigos taip pat laikomas komentaru;

• main() – tai pagrindinės funkcijos antraštė;

• sudėtinis sakinys – tai tarp riestinių skliaustų {} įrašyti sakiniai, kurie traktuojami kaip sudėtingas vienetas.

Programos struktūros apraše parodyta programos elementų rašymo tvarka:

• programos pradžioje rašomos pirminio apdorojimo instrukcijos (preprocessor), kuriomis nurodoma, kokius programos teksto pertvarkymus reikia atlikti prieš kompiliuojant ją;

• apibrėžiami globalieji programos elementai, kurie galės būti vartojami visame rengiamos programos faile (tiek pagrindinėje, tiek kitose vartotojo sukurtose funkcijose);

• vartotojo sukurtų funkcijų tekstai gali būti rašomi ne tik programos gale, bet ir tuoj po globaliųjų elementų aprašų dalies. Rašant šias funkcijas programos gale, yra lengviau skaityti ir analizuoti visos programos tekstą. Pastaruoju atveju atsirandančio prieštaravimo, kad funkcijas reikia pirma aprašyti, o tik po to vartoti, išvengiama po globaliųjų elementų aprašų dalies pateikiant funkcijų prototipus. Funkcijos prototipas – tai pirmasis funkcijos sakinys (antraštė).

Programai tikslinga suteikti vardą ir rašyti jį pirmoje eilutėje kaip komentarą. Čia rekomenduojama rašyti platesnius paaiškinimus apie programą. Vėliau tai padeda programuotojui lengviau ir greičiau prisiminti ar sužinoti programos paskirtį ir kitus duomenis apie ją.

Duomenų failai

Apdorojant didesnius duomenų kiekius, patogu juos laikyti failuose (pvz., diskuose). Failo tipo rodyklės aprašomos taip: FILE *F;

Failai paruošiami darbui funkcija (ji laikoma bibliotekoje stdio.h), kurios prototipas yra:

FILE *fopen (const char *Failo_Vardas, const char *M);

Failo_Vardas nurodomas simbolių eilute, vardine konstanta arba kintamuoju. Antruoju parametru M (simbolių eilute, vardine konstanta arba kintamuoju) nurodomas failo stovis, t.y. leistina failo informacijos perdavimo kryptis. Galimi failų stovio požymiai: r- failą galima tik skaityti; w- Failas skirtas tik rašymui. Jei toks failas jau buvo, tai jis ištrinamas ir kuriamas naujas. a- Papildyti failą duomenimis, rašant juos failo gale. Jei nurodyto failo dar nebuvo, jis sukuriamas.

Stovio požymį papildžius raide t (rt, wt, at), failas bus paruoštas darbui kaip tekstinis. Stovio reikšmę papildžius raide b (rb, wb, ab), failas bus paruoštas darbui kaip binarinis. Jeigu nėra nei t, nei b raidės, tai failo parengimas darbui priklauso nuo globaliojo kintamojo fmode reikšmės. Kiekviena stovio nuoroda gali būti papildyta ženklu + , pavyzdžiui, r+, w+, wt+. Tai reiškia, kad failai gali būti atnaujinami, t.y. leidžiama juos skaityti ir rašyti.

Pagrindinių buferizuotų įvedimo/išvedimo funkcijų prototipai (antraštės) yra laikomos stdio.h bibliotekoje.

Įvedimo/įšvedimo funkcijos:

Funkcijos prototipas (antraštė) Funkcijos atliekami veiksmai

int printf (const char *f [,]);

int scanf (const char *f [,);

int fclose (FILE *rod);

int putc (int simbolis, FILE *rod);

int getc (FILE *rod);

int putw (int sk, FILE *rod);

int getw (FILE *rod);

char *fgets (char *s, int n, FILE *rod);

int fputs (const char *s, FILE *rod);

int fread (void *buf, int t, int n, FILE *rod);

int fwrite (void *buf, int t, int n, FILE *rod);

int fprintf (FILE *rod, const char *f [,]);

int fscanf (FILE *rod, const char *f [,]);

int feof (FILE *rod);

int ferror (FILE *rod);

int remove (const char *vardas);

Išveda į ekraną kintamųjų reikšmes pagal šabloną f ;

Įveda klaviatūra reikšmes į kintamųjų atminties laukus pagal šabloną f ;

Uždaro failą

Rašo simbolį į failą

Skaito simbolį iš failo

Rašo skaičių į failą

Skaito skaičių iš failo

Skaito n simbolių ilgio eilutę s

Rašo eilutę s į failą

Skaito n blokų, turinčių po t baitų, iš failo rod į buferį buf; funkcijos fread reikšmė – perskaitytų blokų skaičius

Rašo n blokų, turinčių po t baitų, iš buferio buf į failą rod; funkcijos fwrite reikšmė – užrašytų blokų skaičius

Rašo į failą rod reikšmes sąrašo elementų pagal šabloną f ; šablonas f ir kintamųjų sąrašas sudaromi taip pat, kaip ir funkcijoje printf

Skaito sąrašo elementų reikšmes iš failo pagal šabloną f ; šablonas f ir elementų sąrašas sudaromi taip pat, kaip ir funkcijoje scanf. Funkcijos fscanf reikšmė – perskaitytų elementų skaičius

Šiuo metu Jūs matote 51% šio straipsnio.
Matomi 910 žodžiai iš 1784 žodžių.
Peržiūrėkite iki 100 straipsnių per 24 val. Pasirinkite apmokėjimo būdą:
El. bankininkyste - 1,45 Eur.
Įveskite savo el. paštą (juo išsiųsime atrakinimo kodą) ir spauskite Tęsti.
SMS žinute - 2,90 Eur.
Siųskite sms numeriu 1337 su tekstu INFO MEDIA ir įveskite gautą atrakinimo kodą.
Turite atrakinimo kodą?
Po mokėjimo iškart gausite atrakinimo kodą, kurį įveskite į laukelį žemiau:
Kodas suteikia galimybę atrakinti iki 100 straispnių svetainėje ir galioja 24 val.